至少 1.9 里面这样写就报错了,你是不是看错代码了。
{ } 块绑定到最近的对象。method arg { block } 实际是 method(arg { block }),所以 m 100 { puts "block" } 报错是很正常的也是正确的。
{ }
method arg { block }
method(arg { block })
m 100 { puts "block" }
如果需要你想要的行为,你需要使用 do... end 块。
do... end