Ruby习惯用法的默认值

时间:2011-11-30 19:35:08

标签: ruby idioms

有没有更好的方法在Ruby中编写它,而不是两次写“bar”?

foo = bar > 0 ? bar : 1

2 个答案:

答案 0 :(得分:4)

不是通用用例,但是:

foo = [bar, 1].max

答案 1 :(得分:3)

$ irb

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

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

x的值将替换为“default”,但仅当x为nil或false时。所以我不确定它是否适合您的用例(x > 0)

x ||= "default"只是x || x = "default"的缩写。