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