在TCL中,是否有一个优雅的实现,它将模仿编程语言中经常使用的ifdef.从TCL脚本语言本身来看,我找不到TCL解释器原生支持的方法.
除了标准的"if"语句之外,Tcl中没有内置的东西相当于"ifdef".如果您不喜欢标准的"if"语句,tcl将为您提供创建自己的"ifdef"命令的所有基本构建块.
例如,ifdef实际上只是一个查找定义值的if语句.一个非常简单的实现可能看起来像这样:
proc define {name value} {
set ::defined($name) $value
}
proc ifdef {name script1 else script2} {
if {[info exists ::defined($name)]} {
uplevel $script1
} else {
uplevel $script2
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
define FOO 1
...
ifdef FOO {
<do this if FOO is defined>
} else {
<do this if FOO is NOT defined>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2145 次 |
| 最近记录: |