2011-12-07 48 views
-2

我需要能夠使用此電話:如何在Ruby中實現注入?

h = x.inject({}) {|a, b| a[b.one] = b.two; a} 

其中x是情侶對象的序列(這只是包含兩個數字字段,一個和兩個)。

我不確定如何在Couple中實現注入方法。

+0

呀,什麼是 'X',也什麼結果,你希望得到。 2或3個x值和結果將有所幫助。 – drhenner

+0

可能重複[在Ruby中使用注入?](http://stackoverflow.com/questions/8416142/using-injection-in-ruby) – MikDiet

回答

1

Couple中定義#each方法,然後在其中包含Enumerable

class Couple 
    def each 
    yield "a" 
    yield "b" 
    end 

    include Enumerable 
end 

couple = Couple.new 
couple.inject("") { |str, obj| str + obj } 
# => "ab" 

http://www.ruby-doc.org/core-1.9.3/Enumerable.html

+0

OOC - 會「每個」的工作?它會不會「屈服」b? –

+0

是的,你可以用不同的參數反覆調用yield。 – d11wtq

+0

酷:)由於某種原因,我認爲它會返回第一個產量。 –