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去调用块了