【发布时间】:2015-02-20 11:43:12
【问题描述】:
我想知道在 Ruby MRI 编程语言中定义了 nil 对象。它看起来像一个常量,但与常量不同的是,它不是大写样式。
还有一个 NilClass,它是一个类。但是nil 是在哪里定义的?谢谢。
【问题讨论】:
我想知道在 Ruby MRI 编程语言中定义了 nil 对象。它看起来像一个常量,但与常量不同的是,它不是大写样式。
还有一个 NilClass,它是一个类。但是nil 是在哪里定义的?谢谢。
【问题讨论】:
在keyword.rb文件中定义:
一种特殊的“非对象”。
nil实际上是一个对象(NilClass的唯一实例),但意味着缺席和不确定性。nil和false是 Ruby 中仅有的两个具有 Boolean falsehood 的对象(通俗地说,这会导致if条件失败)。
nil用作未初始化数组元素和哈希值的默认值(除非默认值被覆盖)
来自 Ruby 官方 - Keywords 和 keyword_nil。
【讨论】:
nil 是关键字,如@987654322@、if、class、and、or、end 等。关键字在解析器中定义。
【讨论】: