Ruby идиома для значений по умолчанию - PullRequest
1 голос
/ 30 ноября 2011

Есть ли лучший способ написать это на Ruby, без написания "bar" дважды?

foo = bar > 0 ? bar : 1

Ответы [ 2 ]

4 голосов
/ 30 ноября 2011

Не общий вариант использования, но:

foo = [bar, 1].max
3 голосов
/ 30 ноября 2011
$ irb

>> x ||= "default"
=> "default"

>> x ||= "nothing changes, since x has been defined"
=> "default"

Значение x будет заменено на «по умолчанию», но только если x равно nil или false. Поэтому я не уверен, что он подходит для вашего варианта использования (x > 0).

x ||= "default" это просто сокращение для x || x = "default".

...