rails的同学极力鼓吹rails的简洁高效。虽一早就认定rails不太符合我的习惯,还是经不住诱惑再多看了rails两眼。
rails中大量使用了ruby的block语法。由于此前没有系统的看过ruby语法,block还是给我带来了不小的困惑。网上不少介绍block的文章,都说的不是太清楚。在看过《Programming Ruby》后才真正的开始理解block的用法。
代码块(Blocks)是指一块代码,用大括号({})或者do…end来标明起始和结束,代码块只能跟在方法调用后边。
yield语句:在方法内部使用yield语句来占位,当方法执行到yield时,实际执行的是调用方法时跟在后边的的代码块。
|x|:变量用一对’|’包裹,在代码块中使用,用于接受yield传递的参数。yield后跟的参数会传递给代码块中用| |标志的变量。
下面通过例子来更直观的认识block。
def x
p "=start"
yield 'a'
yield 'b'
p "=end"
end
x do |a|
p "hello", a
end
程序的运行结果为:
"=start"
"hello"
"a"
"hello"
"b"
"=end"
定义了函数x,其中两次使用yield调用block中的代码块。block代码块支持一个参数。
不错 不错~ 让我理解了这个yield 的用法. 多谢~~! marco..啊 很像
讲得很清楚。谢谢