Project1

标题: 请问脚本中经常出现的|x|是什么意思啊? [打印本页]

作者: 银色子夜    时间: 2014-10-9 19:48
标题: 请问脚本中经常出现的|x|是什么意思啊?
小弟初学脚本,还望指教:
例如下面这段代码:

def draw_all_items
  item_max.times{ |i| draw_item(i) }
end

中的 | i |到底是什么意思啊?
小弟不明白 | | 符号的作用是什么,望指明。
作者: 喵呜喵5    时间: 2014-10-9 20:49
{ |i| draw_item(i) }
代码块的参数为i

例如,下面这个语句:
item_max.times{ |i| draw_item(i) }

item_max 为5的时候执行的代码就是
  1. draw_item(0)
  2. draw_item(1)
  3. draw_item(2)
  4. draw_item(3)
  5. draw_item(4)
复制代码
(未测试,忘记是0~4还是1~5了囧)
作者: cinderelmini    时间: 2014-10-10 22:08
本帖最后由 cinderelmini 于 2014-10-10 22:09 编辑

简单理解的话就是:
  1. item_max.times{ |i| draw_item(i) }
复制代码
等同于:
  1. for i in 0...item_max
  2.   draw_item(i)
  3. end
复制代码
前面的对象必须是个大于0的数字(是大于0没错吧?),
这是.times

其他的还有:
.each{|a| xxx}
.each_with_index{|a, b| xxxxxxx}
each的话,对象必须是个数组,||里面的值指的是这个数组里面从头到尾的每一个成员,运行过程就是每一个成员都走一遍;
each_with_index的话,对象也必须是个数组,但||里面的前一个同上,后一个是数组里从头到尾的序号,0~(数量-1)。
此外,{}里的内容每一个完整句子写完之后是可以换行的。


作者: 银色子夜    时间: 2014-12-15 14:39

呃。。。
意思是说
|i|的作用类似于JAVA中for循环中的index参数吗?
作者: 泉塚四季    时间: 2014-12-15 18:30
银色子夜 发表于 2014-12-15 15:39
呃。。。
意思是说
|i|的作用类似于JAVA中for循环中的index参数吗?

array=[1,2,3]
array.each {|i| p i}

#=>
#1
#2
#3




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1