TCL 0 不等于 FALSE

PT *_*ynh 1 boolean tcl

我试过

expr 0==false
Run Code Online (Sandbox Code Playgroud)

但它返回 0 而不是 1。

根据http://wiki.tcl.tk/16295,False 值是不区分大小写的单词 no、off、false、它们的唯一缩写和 0。

很奇怪,还是我的理解有误?

Din*_*esh 5

在为expr命令指定操作数时,要根据布尔值进行验证,我们应该只使用string is命令。

% expr {0==false}
0
% expr {[string is false 0]}
1
Run Code Online (Sandbox Code Playgroud)

简单地针对 boolean equal 进行验证==会将它们视为文字字符串/列表。

参考: expr