【发布时间】:2013-02-02 15:08:04
【问题描述】:
- 为什么
TRUE == "TRUE"在 R 中是TRUE? - R 中的
===是否有任何等价物?
更新:
这些都返回FALSE:
TRUE == "True"
TRUE == "true"
TRUE == "T"
唯一的TRUE 值是TRUE == "TRUE"。
如果使用identical() 检查一切正常。
第二次更新:
=== 运算符是指检查变量的值和数据类型的过程。在这种情况下,我假设== 运算符只会比较变量的值,而不是它们的数据类型。
【问题讨论】:
-
===是javascript 运算符吗? The Strict Equality Comparison Algorithm? -
@agstudy 我猜在许多 C 驱动的语法语言中,我们都有这个运算符同时用于值和数据类型检查。我不确定其他语言...
-
TRUE==1 和 TRUE==1.0 和 TRUE==1.0000000000000001(和 0.99999999999999999)也是正确的。一般来说,所有足够接近 1.0 的东西都可以被 IEEE754 四舍五入。
-
@Mahdi 大多数 C 驱动语言都有静态类型,所以这个运算符对它们没有意义。还要注意 ruby 有这个操作符。所以它主要用于具有动态类型和默认类型强制的语言中进行值比较。
-
@Simon 谢谢你的解释,你是对的。 :)
标签: r boolean comparison boolean-logic