当 返回时,我发现自己做了很多事情来防止为零。 some_method 返回零。
a = a.some_method.present? ? a.some_method : []
有没有更 ruby 的方式来做到这一点?我试过使用
a = []
a ||= a.some_method
但当然这只会给我
a = []
谢谢!
最佳答案
通常的模式是:
result = method(args) || default_value
||
运算符(operator)短路。如果左侧为真,则无需评估右侧。在 Ruby 中,nil
被认为是假的。因此如果 nil
返回(或 false
),||
评估右侧并将其作为结果返回。注意左右两边的顺序很重要。
关于ruby-on-rails - 用 ruby 最佳实践替换三元零检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38710462/