`each`方法返回什么?
问题描述:
答
它遍历可枚举对象的成员。因此,如果@data
是一个数组,它将一次返回数组中的元素,即d
。确切的行为取决于对象的类型。请参阅docs
Books.all
返回一个对象,虽然它不是数组,但在这种情况下的行为如同一个。
答
-
each
返回接收器,在这种情况下为@data
。 - 该
do
...end
是一个块。
答
each
方法将为数据中的每个值运行该块(使用方法yield
)一次。这被称为迭代器。对于一个数组,它将遍历数组中的所有值,对于一个散列,它将每对(key,value)运行一次。你可以为自己的类定义自己的迭代器。
返回值each
取决于它被调用的对象。在数组上调用时,它将返回数组。
在你的情况下,方法each
将对每个值执行一次块,并将每个值作为参数发送到块。
对于示例 -
a = [1,2,3]
a.each do |n|
p n
end
只是一样
p a[0]
p a[1]
p a[2]
[文件](http://rdoc.sourceforge.net/doc/)说..什么? – 2013-03-19 00:45:04
它是来自控制器的实例变量。例如,@books = Book.all我不知道它是什么特定的结构 – OneZero 2013-03-19 00:45:15
然后,你最好找出答案。我投票不是一个真正的问题,因为一旦类型已知,那么它只是“什么是阵列#每?”或者“什么是哈希#每个?”或“每个x#是什么?”这些内容包含在适当的参考资料中。 (它来自[ActiveRecord](http://guides.rubyonrails.org/),也有相关文档。) – 2013-03-19 00:45:32