【发布时间】:2011-05-19 11:54:43
【问题描述】:
我理解在顶级执行环境中,self 是Object 类的一些预定义对象。
puts self.class.inspect #=> Object
和
puts self.class.ancestors.inspect #=> [Object, Kernel, BasicObject]
但是,为什么我找不到像这样的“puts”方法?
puts self.class.instance_methods.include?(:puts) #=> false
我期待true,因为Kernel 在Object 中是included,谁能告诉我为什么它返回false?
已解决
puts在Kernel中被定义为私有实例方法。
Kernel.private_instance_methods.include?(:puts) #=> true
我想知道为什么ruby核心文档在Kernel的公共实例方法列表中有列表puts
【问题讨论】:
标签: ruby