¿Está permitido usar un elemento de matriz usando la declaración de cambio tcl? tengo una matriz llamada
set name "pad" set p_list("pad") "IO2"y ahora tratando de hacer algunas cosas condicionales en esa matriz como
% switch $p_list($net_name) { IO1 { puts "io1" } IO2 { puts "io2" } default { puts "default" } }pero parece que la matriz no se puede pasar al conmutador y, por lo tanto, el error siguiente no puede leer "pads_list (pad)": no hay tal elemento en la matriz
¿Podría alguien sugerir si está permitido o no? Si está permitido, ¿cómo puedo hacer que funcione?
Las comillas dobles no son especiales en Tcl cuando no están al principio o al final de una palabra. Tcl no es Python o C. Esto significa que ha creado un elemento de matriz con el nombre "pad" , incluidas las comillas dobles. Eso es legal, pero bastante inusual en el tipo de aplicación que está escribiendo. (El switch que ha escrito se ve absolutamente bien). O debe escribir:
set p_list(pad) "IO2"o:
set net_name "\"pad\""Supongo que el primero es el que quieres.
Posiblemente también:
set p_list($net_name) "IO2"Y también puede cambiar los nombres de las variables.
Hay algunas otras opciones también:
set "p_list(pad)" "IO2" set net_name {"pad"}No creo que estos te hagan feliz, pero harán lo correcto.