2010-02-17 55 views
1

我有這樣的Ruby別名方法鏈

class Foo 
    attr_accessor :name 
end 

f = Foo.new 
f.name = "bar" 

,我想它與name屬性下面的方法鏈反應,使之與其他對象

f.baz.name == f.name 

接口的類有沒有簡單的方法來回報這個?

+0

您是否需要在程序中多次執行此操作?你需要更多的間接程度,比如'foo.baz.qux.name == foo.name'嗎? – 2010-02-18 00:11:52

+0

我很好奇,你爲什麼要這樣做? – severin 2010-02-18 09:32:44

回答

3
#!/usr/bin/ruby1.8 

class Foo 

    attr_accessor :name 

    def baz 
    self 
    end 

end 

foo = Foo.new 
foo.name = 'Fred' 
p [foo.name, foo.baz.name] # => ["Fred", "Fred"] 
foo.baz.name = 'Barney' 
p [foo.name, foo.baz.name] # => ["Barney", "Barney"] 
+0

謝謝韋恩!沒有想到這一點,我感到非常愚蠢。 – calstad 2010-02-18 14:10:19