有人可以解释这种情况下假和零之间的区别是什么:
irb(main):008:0> Fixnum < Integer
=> true
irb(main):011:0> Integer < Fixnum
=> false
irb(main):012:0> String < Numeric
=> nil
我意识到“字符串不是数字” 并且“并非所有整数都是固定的”
我的想法是天真的和布尔。任何东西包括或不包括,真或假。但似乎有第三种选择,比如,“你在开玩笑吧?” ; - )
有人可以启发我吗?
答案 0 :(得分:9)
考虑到代码Object#<
:
A < B
方法似乎就是这样的
A
为'更高'(例如B.kind_of?( A ) == true
),则 true
。A
为'较低'(例如A.kind_of?( B ) == true
),则 false
。A
与B
无关,则 nil
。所以,在你的例子中。 Integer
继承自Fixnum
,显然这意味着Fixnum
不会继承Integer
。当然String
与Numeric
无关。
这是MRI源代码形式的一些'documentation':)