do endと{}の違い Rubyにおけるブロックはdo endと{}の二通りがあり,基本的にどちらを使っても同じようにブロックを記述することができるが,両者にはdo endより{}の方が結合が強いという違いがある. # fの引数はa,b,ブロック f a, b do end # bの引数はブロック # fの引数はaとbの戻り値 f a, b {} 検証コードは以下の通り.ただし,混乱を避けるため以下のようなdo endと{}で動作が変わるコードは書かないようにするべき. a = 1 b = 2 def f(*args) puts "f: args: #{args}, block: #{block_given?}" "f" end def b(*args) puts "b: args: #{args}, block: #{block_given?}" "b" end # fの引数はa,b,