uplevel

来源:互联网 发布:安卓手机数据库软件 编辑:程序博客网 时间:2024/06/05 03:02

syntax: uplevel level command

uplevel和eval的功用是一样的,只不过uplevel可以把command 执行到其他层去,而eval只能在当前层执行command

set x 10
proc cc {} {
        set x 1
        uplevel {set x [expr $x+1]}
}
puts "x = [cc]"

=>结果是:x=11,即set x [expr $x+1]被放到调用层执行,改变了调用层的x值。
====================================

set x 10
proc cc {} {
        set x 1
        uplevel "set x [expr $x+1]"
}
puts "x = [cc]"

结果是:x=2,即set x [expr $x+1]在当前层执行,改变了当前层的x值。

====================================

set x 10
proc cc {} {
        set x 1
        uplevel "set x [expr $x+1]"
        puts "local x=$x"
}
puts "x = [cc]"

=>结果是:

local x=1
x =

暂时不知为什么[cc]的结果是空?

原创粉丝点击