ruby深く研究する6

550 ワード

m = Proc.new { puts "fuck" }
m1 = proc { puts "fuck1" }

def my_method
  yield
end

def my_method1(obj)
  obj.call
end

my_method(&m)  #=> fuck
my_method(&m1)  #=> fuck1

my_method1(m)  #=> fuck
my_method1(m1) #=>fuck1

&m #=> syntax error, unexpected tAMPER, expecting $end

説明ブロック変換オペレータ&メソッドの呼び出し時のパラメータカッコでのみ意味があり、他の場合は構文エラーです.
ブロック変換子&変換を使用しない場合は、callでブロックを呼び出します.