|

楼主 |
发表于 2007-3-13 14:21:56
|
显示全部楼层
偶就是在看F1,,可是还是有看不太懂的地方,有些讲的我迷迷糊糊的………… [s:8]
+@、-@ 表示单项运算符 +、-,在方法定义等场合中可以使用这种表示法。
这是什么东西?看不懂列…………单项运算符是干什么的?
alias :foo :bar
这种“:”表示什么?我在F1里看到了…………好像有讲,回去找又找不到了………… [s:5]
迭代器例子:
[1,2,3].each do |i| print i*2, "\\n" end
[1,2,3].each {|i| print i*2, "\\n" }
语法:
method(arg1, arg2, ...) do ['|' 表达式 ... '|'] 表达式 ... end
method(arg1, arg2, ...) '{' ['|' 表达式 ... '|'] 表达式 ... '}'
所谓迭代器是指,为了对控制结构(多见于循环)进行抽象化而设计的方法。将 do...end 或 {...} 中的代码片段(也就是块)添加在方法后面,然后再调用该方法时,就能从该方法内部对块进行计算。在迭代器内进行块调用时使用 yield 表达式。传给 yield 的值会被赋值给夹在“||”中的变量。
{...} 比 do...end 块的结合能力强。
foobar a, b do .. end # foobar 是带块的方法
foobar a, b { .. } # b 成了带块的方法
块中首次被赋值(声明)的局部变量的作用域仅限于该块。
foobar {
i = 20 # 声明了局部变量 i
...
}
# 此处的 i 尚未定义
foobar a, b do
i = 11 # 声明了一个新变量 i
...
end
迭代器的返回值与通常的方法是一样的,若块中的 break 引起中断时,将返回 nil。若 break 带参数的话,该参数的值就是带块方法的返回值。
这个迭代器压根就看不懂了………… [s:5] 可以用通俗的语言解释下么? [s:6]
问题好多啊…… [s:5] 这东西真不容易………… [s:6] |
|