2
所以我有這塊繼承的Tcl代碼。本質上,它具有以下功能:proc聲明中的Tcl全局變量
set LOG_ALL 0
set LOG_DEBUG 1
set LOG_INFO 2
set LOG_WARN 3
set LOG_ERROR 4
set LOG_FATAL 5
set LOG_SILENT 6
proc v2 {vimm {log LOG_DEBUG}} {
global LOG_DEBUG
if {$log == $LOG_DEBUG} {
puts "log"
} else {
puts "no log"
}
}
我懷疑設計的最初的想法是使用全局變量爲日誌參數的默認值。然而,它沒有像預期的那樣工作,我無法正確地寫出它,假設它是可能的。
哪種語法是正確的?
謝謝你的幫助。
如果您不需要數字比較,使用符號名。如果是這樣,請使用數組將符號名稱映射爲數字以進行比較。符號是你真正的意思,所以寫出完全的! – 2012-02-21 22:06:44
所以你基本上建議使用字符串(第三個例子)。我不確定它需要的更改量。如果可能,我寧願使用數字。 你的第一個例子是如何工作的? – ilya1725 2012-02-21 22:27:22
第一個示例使用'list'命令構造參數描述符的嵌套列表結構,而不是使用文字。第二個例子通過在'info level 0'上反思實際參數列表來工作。第三個例子是關於改變遊戲;說實話,我並不真的希望你能跟上那個。 :-) _I_大多更喜歡第二個,因爲這也允許動態計算默認值,但第一個沒有問題。 – 2012-02-21 22:36:58