Ruby分离语法

时间:2017-08-29 01:16:54

标签: ruby

我遇到了一些看起来像的代码:

(input_array || []).each do |a|
  some stuff
end

input_array || []的目的是什么?我天真地认为这将评估一个布尔值,这会导致each抛出错误,但显然不会发生这种情况。

1 个答案:

答案 0 :(得分:5)

||的语义是:

  • 如果第一个表达式不是nil或false,则返回
  • 如果第一个表达式为nil或false,则返回第二个表达式

如果第一个为零,则用于提供默认值。