TCL脚本中变量的二次引用

来源:互联网 发布:mac 无法启动安全模式 编辑:程序博客网 时间:2024/06/07 21:11

TCL脚本中变量的二次引用
我们通常使用TCL脚本中的变量一般只会间接访问一次,即

set a 10puts $a

那么如果想要间接访问两次怎么解决,即

set a 10set b a#如何通过b来打印a的值呢?#puts $$b; #打印$a#puts ${$b}; #出错

有或者

set i 10while {$i >= 0} {     set a$i $i    incr i -1    #puts XXX;#如何打印这些值呢?}

我们如何解决这些问题呢?

通过一个大家常用的命令就可以实现,set,你没有看错,就是set命令。
set命令有两种用法:
1.定义一个变量或者改变一个变量的值
2.读出一个变量的值
我们就使用第二中用法

set a 10set b aputs [set $b];#这样就可以打印a的值了

上面的代码中首先用中括号将set bsetb作为一个命令执行,而set $b就是set a命令,然后通过set a命令读出a变量的值,我们也知道,每一条TCL命令都会有返回值,set a返回a的值,之后通过puts打印出来。
第二个例子同理:

set i 10while {$i >= 0} {     set a$i $i    incr i -1    if {-1 != $i} {        #为什么要做判断,希望读者自己去思考        puts [set a$i]    }}

上面的例子会出现一个问题,就是不会打印a10的值,所以需要做一点小的变化

set i 10while {$i >= 0} {     set a$i $i    puts [set a$i]    incr i -1}

在这里,我只是做了一个简单的例子,其实我们不仅仅可以在打印的时候使用,在其他的地方也是可以使用的。
最后说一下,我是最近两个月才开始学习TCL语言的,如果你也是刚开始学习的可以联系我,我们一起学习;但是如果你是大神,同样也希望你可以联系我,我有很多问题需要请教,大家一起学习。
(博主是刚开始接触TCL语言的,如果在文章中有什么问题,欢迎指出,谢谢!)

0 0
原创粉丝点击