编写TCL代码时遇要写一个if判断条件,很简单的一个语句,结果却费了很大力气才搞定。要判断的是,如果执行info exists成功而且某全局数组C的某个成员大于0,正确的语句为:
if { [info exists C(AP${AP}cdnnoperap)] && $C(AP${AP}cdnnoperap > 0 } { }
我为了逻辑上的清晰,特地将语句写为:
if { [info exists C(AP${AP}cdnnoperap)] && {$C(AP${AP}cdnnoperap} > 0 } { }
结果报错。又改成
if { [info exists C(AP${AP}cdnnoperap)] && [$C(AP${AP}cdnnoperap] > 0 } { }
还是报错。又改为
if { [info exists C(AP${AP}cdnnoperap)] && {"$C(AP${AP}cdnnoperap" != "0"} } { }
仍然报错。
看来TCL的语法确实还是很有自己的特点的。往后要多加注意。