ruby-on-rails - 用 ruby​​ 最佳实践替换三元零检查

标签 ruby-on-rails ruby

返回时,我发现自己做了很多事情来防止为零。 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/

相关文章:

ruby-on-rails - 如何检查连接条件?

javascript - 如何在 ruby​​ on rails 中缓存 JSON?

ruby-on-rails - 按用户个人资料过滤微博提要

python - Python 中的 Ruby Mash 等价物?

mysql - Rails MySQL 无法单个批量插入

ruby-on-rails - #<Controller> 的未定义方法 'pluralize'

ruby-on-rails - rails 不在调试器处停止的原因

ruby-on-rails - 在 Rails 中为新手创建登录的最佳方式是什么?

ruby - 如何判断一个Constant是否定义在模块命名空间内,而不是全局命名空间?

ruby-on-rails - ruby on rails 语言问题 "invalid byte sequence in GBK"