我正在用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