我正在用Ruby做SaaS課程。在練習中,我被要求通過使用迭代器,塊和屈服來計算兩個序列的笛卡爾乘積。Ruby的例子說明?
我結束了這個,純粹的猜測和錯誤,它似乎工作。但我不確定如何。我似乎瞭解基本塊和產量使用情況,但是這?一點也不。
class CartProd
include Enumerable
def initialize(a,b)
@a = a
@b = b
end
def each
@a.each{|ae|
@b.each{|be|
yield [ae,be]
}
}
end
end
對像我這樣的noob有些解釋嗎?
(PS:我改變所需的類名CartProd所以人在做的過程中不能找到這麼容易Google上搜尋它的響應)
備註:類變量@@ a和@@ b是有害的(嘗試使用兩個實例)。它們應該被@a和@b取代。 – steenslag
謝謝,我會糾正它。所以@@定義了類變量和@實例變量。 –
順便說一句,'包含Enumerable'行是不必要的。 – manzoid