特殊的nil确实是一个对象,它是NilClass 类仅有的实例,但是在实战中,他也属于非对象的一种。nil的布尔值为假。但这也非对象的开始。
puts @x
这个命令会打印 nil(假如使用一个局部变量来尝试,就会得到一个错误)局部变量不会初始化任何值,甚至不会初始化,nil 表明了没有任何东西,nil 也是表示容器和集合对象找不到某元素时的默认值。例如创建了3个元素的数组,然后尝试访问第10个元素,索引为9,因为数组的索引从0开始,就会得到nil.
>>nil.to_s
=>""
>>nil.to_i
=>0
>>nil.object_id
=>8
nil的to_s方法得到的空字符串(" "),nil的整数表示0,nil 的对象id 为8 ,与8没有特殊的关联,这个特殊的数字仅仅是用于对象的ID