“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。
由于
答案 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
。结果会让你感到困惑。