Tcl 调用编号变量
Tcl calling numbered variable
在 Tcl 中,我在循环中为编号变量赋值。
我如何在另一个循环中调用这些变量
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col$colNum 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
puts "$Col$colNum"
}
如果他们在同一个命名空间,那么你可以这样使用set
:
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col$colNum 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
puts [set Col$colNum]
}
不过,通常情况下,您可能希望避免这样做,而是使用 array
s:
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col($colNum) 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
puts $Col($colNum)
}
或者使用 upvar
创建一个别名(在下面的示例中,我使用 upvar
到全局命名空间 #0
):
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col$colNum 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
upvar #0 Col$colNum currentCol
puts $currentCol
}
在 Tcl 中,我在循环中为编号变量赋值。 我如何在另一个循环中调用这些变量
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col$colNum 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
puts "$Col$colNum"
}
如果他们在同一个命名空间,那么你可以这样使用set
:
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col$colNum 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
puts [set Col$colNum]
}
不过,通常情况下,您可能希望避免这样做,而是使用 array
s:
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col($colNum) 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
puts $Col($colNum)
}
或者使用 upvar
创建一个别名(在下面的示例中,我使用 upvar
到全局命名空间 #0
):
for {set colNum 1} {$colNum < 37} {incr colNum} {
set Col$colNum 0
}
for {set colNum 1} {$colNum < 37} {incr colNum} {
upvar #0 Col$colNum currentCol
puts $currentCol
}