在 ruby 中,{|args| statements} 叫做 匿名函数,就是没有名字的小型函数。然后 each_byte 是一个方法,它接收一个可调用对象。
有时候左花括号可以用 do 代替,有花括号用 end 代替,就是
do |args|
statements
end
这种形式。
|local_varble|,是指一个临时变量,用来对需要操作的对象进行各种操作。
forexample:
aArray = [1,2,3,4,5,6,7,8]
aArray.each { |data|
puts data # 1
data << data+1
}
for x in 0..aArray.length-1 do
puts aArray[x]
end
"abc".each_byte{|c| printf "<%c>",c}
这个语句是对"abc"分别进行操作
就相当于循环执行"abc"的每一个字符。
c是一个变量,第一次执行时,c="a",第二次执行时,c="b"。。。
还有do ... end写法
"abc".each_byte do |c|
printf "<%c>",c
end
想过是一样的
|xxx|有多种场景下存在:
1. 遍历场景下的|xxx|,表示集合中的某一项,如:[1,2,3].each{|x| puts x};
2. do |xxx|,表示程序块的调用参数(或变量),如:form_tag ... do |f|。
{|c| printf "<%c>",c} 和 do |c|... end 都是代码块(Block)
|c| 是对代码块的 形参