当我打电话
@data.each do |d|
some code here
end
each
方法返回什么?一系列对象?或者更一般地说,do
... end
阻止了什么?
答案 0 :(得分:2)
each
返回接收者,在本例中为@data
。do
... end
是一个区块。答案 1 :(得分:0)
each
方法将为数据中的每个值运行一次块(使用方法yield
)。这称为迭代器。对于数组,它将遍历数组中的所有值,对于散列,它将每对(键,值)运行一次。您可以为自己的类定义自己的迭代器。
each
的返回值取决于它被调用的对象。在数组上调用时,它将返回数组。
在您的情况下,方法each
将对每个值执行一次块,并将每个值作为参数发送到块。
例如 -
a = [1,2,3]
a.each do |n|
p n
end
与
相同p a[0]
p a[1]
p a[2]