かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

ブロック

ブロックは、本で斜め読みして使ってみただけで理解があさかったのでちょっと書いてみる。
ブロックを受け取るメソッドを作るのは簡単。普通に書けばOK

def func
    puts "Hello world"
end

func {
    # block
}

実行結果

Hello world

部通のメソッドでもブロックを受け取れる。


受け取ったブロックはどうやって使うのか??
yieldを使うと出来る。

例えば

def func
    yield # これでブロック要素で渡されたものを実行する
end

func {
    puts "block hello world"
    # block
}

実行結果

block hello world


引数も渡せる

def func
    yield "argument hello world" # 引数も渡せる
end

func { |arg|
    puts arg
    # block
}

実行結果

argument hello world