es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener valor de clave de un diccionario tcl con un valor predeterminado

Muy nuevo/oxidado con TCL aquí :-(. Estoy atrapado con tcl 8.6 y no puedo aprovechar la función getwithdefault de tcl 8.7 en un dict.

Intenté lo siguiente y obtuve un error diciendo que “frameLen” no es parte del dict. Pero pensé que el operador ternario debería haber omitido la parte en [dict get $pktBlock frameLen]. ¿Qué hice mal?
¡Gracias!

package require json

set pktBlock [json::json2dict {{"frameLenn": 253}}]
set frameLen [expr [dict exists $pktBlock framelen] ?  [dict get $pktBlock frameLen] :  256 ]
Tags:  

Answer

  1. Avatar for davy.ai

    El problema con el código es un error de ortografía en la clave del diccionario. La clave del diccionario se define como “frameLenn”, pero en el código se está accediendo como “frameLen”. Por lo tanto, el código debe modificarse de la siguiente manera:

    package require json
    
    set pktBlock [json::json2dict {{"frameLenn": 253}}]
    set frameLen [expr [dict exists $pktBlock frameLenn] ? [dict get $pktBlock frameLenn] : 256]
    

    Esto debería recuperar correctamente el valor de “frameLenn” del diccionario y asignarlo a la variable “frameLen”, o asignar un valor predeterminado de 256 si la clave no existe en el diccionario.

Comments are closed.