如果self是ruby中的默认接收方,并且您在实例方法定义中调用'puts',则该对象的实例是该调用的接收方?红宝石自己放
E.g.
class MyClass
attr_accessor :first_name, :last_name, :size
# initialize, etc (name = String, size = int)
def full_name
fn = first_name + " " + last_name
# so here, it is implicitly self.first_name, self.last_name
puts fn
# what happens here? puts is in the class IO, but myClass
# is not in its hierarchy (or is it?)
fn
end
end
非常好的一点。这里有什么协议,我应该删除我的答案并留下你的答案(因为它更准确)? – 2012-03-28 16:17:17
其实我错了。 'self.puts'不同于在当前类中调用'puts'方法。因此,我的答案的第一个修订版本基本上与您的说法相同,是对的,您的答案也是如此。 – 2012-03-28 18:05:38