Tcl 变量访问语法问题

Tcl 变量访问语法问题,tcl,Tcl,在下面的代码中,我在访问${data{k}{u store}时出错。有人能帮我正确的语法吗 错误:无法读取“数据”${k”:没有这样的变量使用错误信息 更多信息。(CMD-013) 是的,您试图引用一个名称本身实际上是动态的变量,因为您使用的是花括号,所以不会对内部${k}求值 ${data_${k}_store} 试试这个 [set data_${k}_store] 通常,当您有这样一个复杂的名称时,最好使用upvar为其创建一个别名,这样您就可以用一个简单的名称对其进行操作: # The

在下面的代码中,我在访问
${data{k}{u store}
时出错。有人能帮我正确的语法吗

错误:无法读取“数据”${k”:没有这样的变量使用错误信息 更多信息。(CMD-013)


是的,您试图引用一个名称本身实际上是动态的变量,因为您使用的是花括号,所以不会对内部${k}求值

${data_${k}_store}
试试这个

[set data_${k}_store]

通常,当您有这样一个复杂的名称时,最好使用
upvar
为其创建一个别名,这样您就可以用一个简单的名称对其进行操作:

# The ‘0’ is for “current stack level”
upvar 0 data_${k}_store datastore
# Now any operation on ‘datastore’ is forwarded to data_${k}_store
puts $datastore

请发布您的代码示例,以便我们能够复制它们。请参阅:set array“”;set array[add_to_collection$array[get_cells cell1];set array[add_to_collection$array[get_cells cell2];set array[add_to_collection$array[get_cells cell3];set k0;foreach_in_collection fifo_inst$array{set data${k}[get_pins-of_objects[get_nets$fifo_inst/fifo*]]报告时间-从clk1到${data${k}{U store}-延迟类型min_max-slack_less_小于2-nworst 100>$rpt_base.launch_seq_idata${k}错误:无法读取“data${k”:无此类变量使用错误信息获取更多信息。(CMD-013)我还添加了图像文件,这是upvar的一个非常有用的用法!