【发布时间】:2012-10-12 16:28:23
【问题描述】:
假设我有这个:
item_one = Object.find(1) rescue item_one, value = [Object.first, true]
这实际上是行不通的。它返回这个:
syntax error, unexpected '=', expecting $end
有人知道如何在语法上将多个赋值放在救援修饰符中吗?
旁注:
Boris 建议以这种方式设置救援语句:
begin
i1 = Object.find 1
rescue NoMethodError
i1, v = Object.first, true
end
【问题讨论】:
-
我非常喜欢将 Ruby 行加长,但救援单行实际上只适用于最简单的情况。
-
@BorisStitnicky 你会推荐什么?
-
多线救援:
begin i1 = Object.find 1; rescue NoMethodError; i1, v = Object.first, true end。它消除了语法歧义,并为您提供了指定要挽救的错误的巨大优势。相信我,onelinerrescue只是一个非常不健康的语法糖,一定要非常谨慎地使用它们。 -
感谢@BorisStitnicky 的提示!
标签: ruby variable-assignment modifier