在我的tcl代码中,我在一个函数中执行了一个foreach循环。在函数的每次迭代中,循环迭代器充当C语言中的静态变量而不是局部变量。
foreach dev_no $tmp_port {
puts "value of dev_no is $dev_no"
每次执行函数时,变量dev_no都会递增1而不是从0开始。因此循环无法执行。
答案 0 :(得分:1)
有关foreach循环结构的说明,请参阅http://www.tcl.tk/man/tcl8.6/TclCmd/foreach.htm。
在你的代码中,dev_no不会递增,但它会遍历变量tmp_port(假设它是一个列表变量)。
答案 1 :(得分:1)
我想你可能想要a for loop。
这是通过$ tmp_port循环每个数字0的代码:
for {set dev_no 0} {$dev_no <= $tmp_port} {incr dev_no} {
puts "value of dev_no is $dev_no"
}
例如,如果tmp_port为4,则输出:
value of dev_no is 0
value of dev_no is 1
value of dev_no is 2
value of dev_no is 3
value of dev_no is 4