下面的“疯狂性”是否有实际应用?信任刚刚返回的对象?
看起来这是ted
总是能够自己重返世界,人们会认为他们在谈论到ted
他们希望采取行动以一定的方式和达到一定年龄谁的方式......但他并不是他描绘自己的方式,而是对某人的年龄撒谎。
什么“挂羊头卖狗肉”是可能的,当返回一个对象,你检查什么对象代表并能......但是真的那么对象是行使职权的其他方式能够其它的东西,然后返回。
class Person
def age
21
end
def who_am_i?
puts "I am #{self}/#{object_id} and I am #{age} years old"
self
end
end
ted = Person.new
def ted.singleton_who_am_i?
class << self
def age
0
end
end
puts "I am #{self}/#{object_id} and I am #{age} years old"
self
end
puts ted.who_am_i? == ted.singleton_who_am_i?
>> I am #<Person:0x100138340>/2148123040 and I am 21 years old
>> I am #<Person:0x100138340>/2148123040 and I am 0 years old
>> true