讓我們假設我有proc foo。我們把proc代碼:在Tcl中的代碼旁路退出
proc foo { argy } {
if { $argy == 1 } { exit 1 }
}
我想調用foo,但有調用代碼旁路/忽略exit命令,而不是退出TCL。即:此代碼:
foo 1
puts "bar"
應該產生:
>bar
任何想法?
謝謝。
讓我們假設我有proc foo。我們把proc代碼:在Tcl中的代碼旁路退出
proc foo { argy } {
if { $argy == 1 } { exit 1 }
}
我想調用foo,但有調用代碼旁路/忽略exit命令,而不是退出TCL。即:此代碼:
foo 1
puts "bar"
應該產生:
>bar
任何想法?
謝謝。
使用rename
覆蓋默認行爲。
rename exit _exit
proc exit {{status ""}} {}
在代碼中第一次出現exit命令之前,請保留上面的代碼。即使在您的代碼開始時,也會將exit
替換爲此虛擬exit
過程。
也許讓假的'exit'做'return'? –
@DonalFellows:由於OP只是想繞過'exit',所以我做了空的定義,從而使它沒有任何意義。也許,如果需要,可以添加「返回」。 – Dinesh
新'exit' proc的主體將是'return-code return',因此它的行爲就像是一個'return'命令 –
如果Dinesh的答案解決了您的問題,請考慮接受答案以向其他讀者指出它很有用。 –