Shorthand 对于 x ? x : y

Shorthand for x ? x : y

x ? x : y 有 shorthand 吗?一个相对温和的例子:

def find_or_create_by_name(name)
    self.find_by_name(name) ? self.find_by_name(name) : self.create(name)
end

当然我可以做类似的事情

def find_or_create_by_name(name)
    x = self.find_by_name(name)
    x ? x : self.create(name)
end

但随后我开始丢失我最初使用三元运算符保存的 space。 (如果我使用完整的 if 语句,则会发生相同的冗余。

您可以只使用 || 运算符:

def find_or_create_by_name(name)
  find_by_name(name) || create(name)
end