Ruby 'each'方法返回什么?
当我打电话时Ruby 'each'方法返回什么?,ruby,Ruby,当我打电话时 @data.each do |d| some code here end 每个方法返回什么?一组物体?或者更一般地说,做什么…结束块执行什么?它迭代可枚举对象的成员。因此,如果@data是一个数组,它将以d的形式一次返回一个数组元素。具体行为取决于对象的类型。见 Books.all返回一个对象,该对象虽然不是数组,但在本例中的行为与数组类似。 每个返回接收器,在本例中为@data do结束是一个块 对于数据中的每个值,每个方法将运行一次块(使用方法产生)。这称为迭代器。对于数
@data.each do |d|
some code here
end
每个方法返回什么?一组物体?或者更一般地说,做什么
…结束
块执行什么?它迭代可枚举对象的成员。因此,如果@data
是一个数组,它将以d
的形式一次返回一个数组元素。具体行为取决于对象的类型。见
Books.all
返回一个对象,该对象虽然不是数组,但在本例中的行为与数组类似。
每个
返回接收器,在本例中为@data
do
<代码>结束
是一个块
- 对于数据中的每个值,
每个
方法将运行一次块(使用方法产生
)。这称为迭代器。对于数组,它将迭代数组中的所有值;对于散列,它将每对(键、值)运行一次。您可以为自己的类定义自己的迭代器
每个的返回值取决于所调用的对象。在数组上调用时,它将返回数组
在您的情况下,方法each
将对每个值执行一次块,并将每个值作为参数发送给块
比如说-
a = [1,2,3]
a.each do |n|
p n
end
就跟
p a[0]
p a[1]
p a[2]
说。。什么?这是控制器的一个实例变量。例如,@books=Book.all我不知道它的具体结构,所以你最好弄清楚。。我的投票并不是一个真正的问题,因为一旦知道了类型,就只有“数组是什么?”或“散列是什么?”或“x是什么?”这些内容包含在适当的参考资料中。(它来自,嗯,也有相关的文档。)另外,
@data.class.name
的快速日志将显示它是什么类。Ruby甚至不用打开文档就可以告诉你很多事情。