如何在switch语句中使用数组?



是否允许使用tcl switch语句使用数组元素?我有一个名为

的数组
set name "pad"
set p_list("pad") "IO2"

现在尝试在数组上做一些基于条件的东西,比如

% switch $p_list($net_name) {
IO1 {
puts "io1"
}
IO2 {
puts "io2"
}
default {
puts "default"
}
}

,但似乎数组不能传递给交换机,因此,出错与以下错误无法读取"pads_list(pad)":数组中没有这样的元素

谁能建议一下这是否允许?如果允许,我该怎么做呢?

在Tcl中,当双引号不在单词的开头或结尾时,双引号不是特殊的。Tcl不是Python或c。这意味着您创建了一个名称为"pad"的数组元素,包括双引号。这是合法的,但在您正在编写的应用程序中是非常不寻常的。(你写的switch看起来绝对没问题。)你可以这样写:

set p_list(pad) "IO2"

或:

set net_name ""pad""

我猜前者是你想要的。

也可能:

set p_list($net_name) "IO2"

你也可以改变变量名。


还有一些其他的选择:

set "p_list(pad)" "IO2"
set net_name {"pad"}

我不认为这些可能会让你快乐,但他们会做正确的事。

相关内容

  • 没有找到相关文章

最新更新