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 编辑

RUBY 代码复制
  1. a = [1, 2, 3, 4]
  2. a.each {|s| p s}


RUBY 代码复制
  1. a = [1, 2, 3, 4]
  2. a.each do |s|
  3. p s
  4. end


RUBY 代码复制
  1. a = [1, 2, 3, 4]
  2. for s in a
  3. p s
  4. end


这三个方式的结果都一样,前两个看不懂,最后一个 for 中的 s 看得懂吧?


作者: zeldafd    时间: 2013-1-27 18:57
j433463 发表于 2013-1-27 18:22

即是把s代為a的那個數組吧。
大概明了。
作者: DeathKing    时间: 2013-1-27 18:58
|| 通常用于块(Block)中,被 || 括住的词素代表此块的参数。

RUBY 代码复制
  1. [1, 2, 3, 4].each do |i|
  2.   puts  i
  3. end


其中,each..do部分构造的块可视为匿名函数(没有名字,不可通过名字引用)。某种意义上,这个块相当于下面这个函数 /方法 。
RUBY 代码复制
  1. def a_anonymous_block(i)
  2.   puts i
  3. end


而each方法这样迭代就相当于:

RUBY 代码复制
  1. a_anonymous_block(1)
  2. a_anonymous_block(2)
  3. a_anonymous_block(3)
  4. 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