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