Сокращения для х?х: у - PullRequest
       11

Сокращения для х?х: у

0 голосов
/ 16 октября 2018

Есть ли сокращение для x ? x : y?Относительно простой пример:

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

, но потом я начинаю терять пространство, сэкономленное с помощью троичного оператора впервое место.(и если я использую полный оператор if, произойдет та же избыточность.

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете просто использовать || оператор:

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