论坛首页 编程语言技术论坛

为什么ruby中的nil.object_id等于4

浏览 2093 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-11-11  

原因是因为nil是一个固定的object,在$rubyhome\lib\1.8\i386-mswin32中的ruby.h头文件里面有如下特殊对象的构造。

 

/* special contants - i.e. non-zero and non-fixnum constants */
#define Qfalse ((VALUE)0)
#define Qtrue  ((VALUE)2)
#define Qnil   ((VALUE)4)
#define Qundef ((VALUE)6) /* undefined value for placeholder */

 

在rails的activesupport里面,也有一个whiny_nil.rb的类有些相关的说明。

论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics