かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

ブロック

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