ruby中nil,false,blank,true和Fixnums的对象ID是什么? 这些对象如何加载优先级。
为什么它会返回4?我知道它是4,但对象id背后的逻辑是什么?
答案 0 :(得分:1)
为什么nil的对象id等于4?首先,您需要知道false和true变量的工作方式与nil完全相同。它们分别是FalseClass和TrueClass的单例实例。当Ruby解释器启动时,它会初始化FalseClass,TrueClass和NilClass。
结果是:
false.object_id => 0
true.object_id => 2
nil.object_id => 4
1和3发生了什么?好吧,第一位仅用于Fixnum值(数字)。简单而一致。
要获取fixnum的对象ID,您可以遵循以下公式: object_id =(n * 2)+1 [其中n是fixnum]