在 if 语句或使用 guard 语句中检查变量的存在是更好的风格吗?
Is it better style to check presence of a variable in an if statement or use a guard statement?
您认为以下哪种风格更好,为什么?在 Ruby.
中编写的示例
if number && number < 10
...
else
nil
end
或
return nil if number.blank?
if number < 10
...
end
最好使用保护子句,因为它可以减少嵌套级别。但是,你的第二个代码只是中途保护子句,它还有多余的 nil
值,并不等同于第一个代码。改进它是:
return unless number && number < 10
...
可能有人不喜欢,但是(前提是number
永远不会false
)我会写:
return unless number&.<(10)
...
您认为以下哪种风格更好,为什么?在 Ruby.
中编写的示例if number && number < 10
...
else
nil
end
或
return nil if number.blank?
if number < 10
...
end
最好使用保护子句,因为它可以减少嵌套级别。但是,你的第二个代码只是中途保护子句,它还有多余的 nil
值,并不等同于第一个代码。改进它是:
return unless number && number < 10
...
可能有人不喜欢,但是(前提是number
永远不会false
)我会写:
return unless number&.<(10)
...