ruby - Ruby中使用后缀 "if"语句的目的是什么?

标签 ruby

我知道 Ruby 支持后缀 if,例如:

number = -42 if opposite

但是这样做的目的是什么?为什么要用它来代替前缀 if 语句?

最佳答案

后缀风格的 ifunless 也适用于“保护条款”,形式如下:

return if ...
return unless ...

这是一个例子:

# suffix-style
def save
  return false if invalid?
  # go for it
  true
end

对比:

# indented style
def save
  if valid?
    # go for it
    true
  else
    false
  end
end

在第二个例子中,由于 valid? 检查,方法的整个实现必须移动一个缩进,我们需要一个额外的 else 子句.使用后缀样式,invalid? 检查被认为是我们处理然后退出的边缘情况,该方法的其余部分不需要缩进或 else 子句。

这有时被称为“保护条款”并且是 recommended由 Ruby 风格指南。

关于ruby - Ruby中使用后缀 "if"语句的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236391/

相关文章:

ruby-on-rails - 从 Rails 控制台设计密码重置

ruby-on-rails - rails : Find relations on relations

ruby - 如何为动态实例变量设置 attr_accessor?

ruby-on-rails - 根据我所处的 View 制作 if 条件 (Rails 4)

ruby - 执行操作直到满足条件

ruby-on-rails - Ruby JSON.pretty_generate ... 很不漂亮

ruby-on-rails - ActiveRecord - 嵌套包含

ruby - 在包含的模块中调用继承的方法

ruby - 在 rhoMobile 中显示单击按钮的 View

ruby-on-rails - 绕过辅助开发 gem 的 bundler