#8 楼 @zgm 你说的对,sinatra 中确实都是用的是 Proc.new,他这样做看起来更面向对像些,他里面的很多配置是类似这样写的
set :raise_errors, Proc.new { test? }
这是可以用 lambda 代替的,sinatra 做的比较好的一点就是始终如一的用 Proc.new 统一了风格。
看待问题的角度不同,处理问题的手段也就不一样了,我把 Proc 的主要功能定位于在幕后对象化 block 和 lambda,所以在平时写代码的时候一般不用 Proc.new,当然到了非要用 Proc.new 的时候,也就用了。