Tcl 调用编号变量 [英] Tcl calling numbered variable

查看:33
本文介绍了Tcl 调用编号变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Tcl 中,我为循环中的编号变量赋值.我如何在另一个循环中调用这些变量

In Tcl, I assigned values to numbered variables in a loop. how can I call these variables in another loop

for {set colNum 1} {$colNum < 37} {incr colNum} {
    set Col$colNum 0
}   

for {set colNum 1} {$colNum < 37} {incr colNum} {
    puts "$Col$colNum"
}

推荐答案

如果它们在同一个命名空间,那么你可以这样使用set:

If they are in the same namespace, then you can use set in this way:

for {set colNum 1} {$colNum < 37} {incr colNum} {
    set Col$colNum 0
}   
for {set colNum 1} {$colNum < 37} {incr colNum} {
    puts [set Col$colNum]
}

<小时>

但通常,您可能希望避免这样做并使用 arrays 代替:

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,在下面的例子中):

Or use upvar to create an alias (I'm using upvar to the global namespace, #0, in the below example):

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 调用编号变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆