Project1
标题:
关于each方法的疑问
[打印本页]
作者:
黄亦天
时间:
2011-2-2 15:49
标题:
关于each方法的疑问
本帖最后由 黄亦天 于 2011-2-7 03:31 编辑
each 方法该怎么使用?
它和哪一种循环比较类似?
(F1 翻到眼花…… 终究没找到each方法在哪……)
作者:
幻想乡茶农
时间:
2011-2-2 16:06
[1, 2, 3].each do |i| p i end
或
[1, 2, 3].each {|i| p i }
相似的话个人感觉有点像for~in~end
作者:
IamI
时间:
2011-2-2 16:11
each在array页里。
引用:
each {|item| .... }
依次使用每个元素来计算块。返回self。
另外to LS 不是像,for就是each。
可以理解成
for i in a
f(i)
end
<=>
a.each(){|i| f(i)}
作者:
黄亦天
时间:
2011-2-2 16:54
a = 0 # 为变量 a 赋值代入 0。
for i in 1..5 # 变量 i 的值按从 1 到 5 的范围变化,
a += i # 变量 a 加上 i 的值。
end # 循环结束。
p a # 显示计算结果。
复制代码
那么F1里的这段,用each方法的话是不是就是这样?
a = 0
[1,2,3,4,5].each{|i| a += i }
p a
复制代码
另外想问,| | 和 { } 是做什么用的?
a.each
()
{|i| f(i)}
这个括号又用在哪里?
作者:
trentswd
时间:
2011-2-2 17:06
没有参数所以把括号省了
{|item|...}可以看一下帮助里面迭代器部分
each方法在array类里面有介绍
此外还有一个用到each的枚举模块Enumerable
作者:
DeathKing
时间:
2011-2-6 10:47
回复
黄亦天
的帖子
a.each() {|i| f(i)}
each()是方法,Ruby里面调用方法可以不加括号,所以直接使用each也是可以的。
||表示需要迭代的是什么,类似于指明for语句中的循环体。
f(i)是每次迭代都要执行的语句。
{}是块,可以简单的认为是一个语句段落,也可以用do..end来表示
使用each的好处就是不用担心漏掉枚举的任何一个元素,想想以前担惊受怕的遍历数组:
ary = [1,2,3,4,5]
for i in 0...ary.size
p "上山打老虎"
end
复制代码
还得考虑会不会越界而访问到nil,使用each就不用担心,因为它会遍历数组中的每一个元素。
ary = [1,2,3,4,5]
ary.each do |element|
p "老虎没打着,大着#{element}"
end
复制代码
作者:
IamI
时间:
2011-2-6 11:24
Range isn't Array though method 'each' is defined,right?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1