Tcl 逻辑not运算符

Tcl 逻辑not运算符,tcl,Tcl,来自C/C++领域,我想知道为什么下面的方法不起作用: set a 111 if {! $a eq {} } { puts hi } 我知道如果我把第二行改成,如果{$a ne{}}{,那就没问题了,但是我不能理解为什么“!”不起作用。这是因为在Tcl中,!的优先级高于ne,所以首先对它求值 您可以查看Tcl运算符优先级的完整列表。是的,您是对的,使用()对eq表达式进行分组可以解决问题。

来自C/C++领域,我想知道为什么下面的方法不起作用:

set a 111
if {! $a eq {} } {
  puts hi
}

我知道如果我把第二行改成
,如果{$a ne{}}{
,那就没问题了,但是我不能理解为什么“!”不起作用。

这是因为在Tcl中,
的优先级高于
ne
,所以首先对它求值

您可以查看Tcl运算符优先级的完整列表。

是的,您是对的,使用()对eq表达式进行分组可以解决问题。