1
我收到了這個奇怪的問題。 我使用TCL 8.3tcl proc使用upvar導致歷史(nextid)
後,我在TCL殼定義這個PROC
% proc incr { varName {amount 1}} {
puts $varName
upvar #0 $varName var
puts $varName
if {[info exists var]} {
set var [expr $var + $amount]
} else {
set var $amount
}
return $var
}
我不斷收到
%
history(nextid)
history(nextid)
history(oldest)
history(oldest)
%
每次我打換行 「中輸入」 那 任何一個具有後任何想法爲什麼發生這種情況?
你可能只想'upvar $ varName var' - 使用'#0'意味着你只能使用你的proc和全局變量,局部變量將不會被看到。 –