我知道 Ruby 支持后缀 if
,例如:
number = -42 if opposite
但是这样做的目的是什么?为什么要用它来代替前缀 if
语句?
最佳答案
后缀风格的 if
和 unless
也适用于“保护条款”,形式如下:
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/