在 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)
...