我正在用 Ruby 上一门 SaaS 课程。在一个练习中,我被要求使用迭代器、块和产量来计算两个序列的笛卡尔积。
通过纯粹的猜测和错误,我最终得到了这个,它似乎有效。但我不确定如何。我似乎了解基本块和产量用法,但是这个?一点也不。
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
请给像我这样的菜鸟一些解释,好吗?
(PS:我将所需的类名更改为 CartProd,因此学习该课程的人无法通过谷歌搜索轻松找到响应)