为什么`TrueClass === true`求值为'true`但是`true === TrueClass`求值为'false`?

时间:2016-08-26 05:52:01

标签: ruby

我正在分析一下三个等号#{1}}或 case equality 方法/运算符如何在Ruby上运行true,false,TrueClass和FalseClass。我在评估这些表达式时发现了这种特殊的行为/结果:

===

我知道每个对象都有自己的实现,例如string where:

> TrueClass === true
# => true

> true === TrueClass
# => false

如果variable === 'abc' 意味着,变量完全匹配'abc',否则匹配true

我在C中看到的实现并没有真正告诉我任何事情,因为我对Ruby的C实现并不是很熟悉。这是链接:http://ruby-doc.org/core-2.3.0/TrueClass.html#method-i-3D-3D-3D

提前致谢。

0 个答案:

没有答案