2016-09-16 84 views
0

「return」是否能夠打印變量?在Tcl中命令「return」。它能返回一個變量並被打印嗎?

爲了說明在Tcl8.6中使用「上層」,我詳細闡述了以下腳本,幫助我理解「上層」的使用。

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

編號'return'將不會打印該值,除非您明確地打印或覆蓋該行爲。 – Dinesh

回答

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。結果會讓你感到困惑。