Ruby 学习笔记 第六天

来源:转载

{和} 或 do 和 end 之间的代码是代码块,本质上是匿名的方法。

可以用 lambda方法,把代码块存贮在变量中,用lambda对象的call方法来执行代码块,以及接受传递来的任何参数:

fn = lambda {|x| puts x}

fn.call("hello")

yield方法,他能自动检测传递给他的代码块,并将控制权移交给该代码块

def each_vowel

    %w{a e i o u}.each {|vowel| yield vowel}

end

each_vowel {|vowel| puts vowel}

一次只能传递一次个代码块,任何方法都不可能接受两个或多个代码块作为参数,但代码块本身可以接受零个、一个或多个参数。

分享给朋友:
您可能感兴趣的文章:
随机阅读: