命令“返回”在Tcl中。它可以返回一个变量并打印出来吗?

时间:2016-09-16 05:11:45

标签: tcl

“return”是否能够打印变量?

为了说明在Tcl8.6中使用“uplevel”,我详细说明了以下脚本,以帮助我理解“uplevel”的使用。

    set a goodbye

proc test {} {
    set a hello
    uplevel #0 {return $a}
}

test

该示例基于我在wiki.tcl.tk上找到的脚本:

set x goodbye

apply {{} {
        set x hello 
        uplevel {return $x}
}}

但是当我执行它们时,没有打印$ x。

由于

1 个答案:

答案 0 :(得分:0)

return命令返回值。它将打印留给puts或打印者。或者您可以在程序的执行中使用离开跟踪来执行此操作:

proc test {args} {
    return "abc"
}
trace add execution test leave {apply {{cmd code result op} {
    puts "the result was '$result'"
}}}
test 123
#>>> the result was 'abc'
#abc

另外,请勿uplevel return。结果会让你感到困惑。