我有一个TCL列表
set d_nets { reg0, reg1, reg2, reg3, reg4, reg5, reg6, reg7}
我想要某些操作并获得一个元素。 示例 -
for {set i 0} {$i < 128} {incr i} {
set new_indx [expr { 7 - $i }] #expression can be more complicated
lindex $d_nets $new_indx
}
但是这会标记错误
错误:索引错误“....”:必须是整数?[+ - ]整数?还是结束?[+ - ]整数?
有关lindex使用的任何帮助吗?
答案 0 :(得分:0)
我没有收到你得到的错误,但请注意你可以写
lindex $d_nets 7-$i
而不是单独计算索引值。
除了在引用#
之前需要分号外,您的代码在这里工作正常。
您可能也希望丢失列表中的逗号。 Tcl使用空格作为列表分隔符,因此逗号以值结束。
答案 1 :(得分:0)
您好在添加评论时我们需要添加一个半冒号。 添加半结肠后,它正常工作。
%设置d_nets {reg0,reg1,reg2,reg3,reg4,reg5,reg6,reg7}
reg0,reg1,reg2,reg3,reg4,reg5,reg6,reg7
%
{set i 0}的{p>%{$ i&lt; 128} {incr i} { set new_indx [expr { 7 - $i }]; #expression can be more complicated
lindex $d_nets $new_indx
}
%
还有一个选择是我们可以将线路组合成一个,如下所示。
for {set i 0} {$ i&lt; 128} {incr i} {
put [lindex $ d_nets [expr {7- $ i}]]
}