Project1
标题: 腳本上的疑問=>|i| [打印本页]
作者: zeldafd 时间: 2013-1-27 13:30
标题: 腳本上的疑問=>|i|
腳本中我看到用“|”去括著某些的字符。
那是有什麼用途的?
是簡化還是引用什麼的?
作者: zhangbanxian 时间: 2013-1-27 13:50
- -b请参照f1里对迭代器(块)的介绍...
作者: zeldafd 时间: 2013-1-27 16:20
zhangbanxian 发表于 2013-1-27 13:50
我看不明==|||
你可以說明一下嗎==
作者: zeldafd 时间: 2013-1-27 17:15
真的找人詳細說一說吧...
不只可以幫到我一個人...
作者: j433463 时间: 2013-1-27 18:22
本帖最后由 j433463 于 2013-1-27 18:23 编辑
a = [1, 2, 3, 4]
a.each {|s| p s}
a = [1, 2, 3, 4]
a.each {|s| p s}
a = [1, 2, 3, 4]
a.each do |s|
p s
end
a = [1, 2, 3, 4]
a.each do |s|
p s
end
a = [1, 2, 3, 4]
for s in a
p s
end
a = [1, 2, 3, 4]
for s in a
p s
end
这三个方式的结果都一样,前两个看不懂,最后一个 for 中的 s 看得懂吧?
作者: zeldafd 时间: 2013-1-27 18:57
j433463 发表于 2013-1-27 18:22
即是把s代為a的那個數組吧。
大概明了。
作者: DeathKing 时间: 2013-1-27 18:58
|| 通常用于块(Block)中,被 || 括住的词素代表此块的参数。
[1, 2, 3, 4].each do |i|
puts i
end
[1, 2, 3, 4].each do |i|
puts i
end
其中,each..do部分构造的块可视为匿名函数(没有名字,不可通过名字引用)。某种意义上,这个块相当于下面这个函数 /方法 。
def a_anonymous_block(i)
puts i
end
def a_anonymous_block(i)
puts i
end
而each方法这样迭代就相当于:
a_anonymous_block(1)
a_anonymous_block(2)
a_anonymous_block(3)
a_anonymous_block(4)
a_anonymous_block(1)
a_anonymous_block(2)
a_anonymous_block(3)
a_anonymous_block(4)
如果按照这样理解,像|k,v|这种写法也不奇怪了——他表示这个块接受两个参数而已!
作者: zeldafd 时间: 2013-1-27 20:26
DeathKing 发表于 2013-1-27 18:58
明白了,謝謝>-<
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |