我在使用Ruby塊傳遞方法時遇到了一些困難。爲數組的每個元素調用一次塊,將該元素作爲參數傳遞
如在下面的情況下,我想顯示@array的每個元素,從Box實例(使用。每個法):
class Box
def initialize
@array = [:foo, :bar]
end
def each(&block)
# well, hm..
end
end
a = Box.new
a.each { |element| puts element }
謝謝,帕特里克! – 2010-03-13 12:31:58
+1 - 這是相當不錯的解決方案。 – RubyDubee 2010-03-13 15:22:26
Forwardable庫是處理簡單委託的另一種方式:'require'forwardable'',然後在Box中:'extend Forwardable'和'def_delegator(:@ array,:each)' – 2010-03-14 21:25:12