相关疑难解决方法(0)

如果没有使用`rescue`作为代码块,Ruby的`begin ... end`是否会产生意想不到的后果?

我偶尔看到begin...end在红宝石中使用没有任何块rescue,else,ensure,等语句之间.例如:

foo = begin
   whatever = 3
   "great"
   42
end
Run Code Online (Sandbox Code Playgroud)

看起来编码器的意图是将begin...end块用于其块分组质量(就好像begindo).就个人而言,我认为这种用法违反了最少惊喜的原则(begin暗示对我的异常处理).

begin...end以这种方式使用是否会产生任何意想不到的后果?做begin...end块有任何语义差异(也许在异常处理?),使这种用法很危险吗?

Ruby的语法令人难以置信的微妙,如果有一些奇怪的陷阱在这里等待,我也不会感到惊讶.

ruby

20
推荐指数
1
解决办法
4946
查看次数

标签 统计

ruby ×1