我使用下面的代码来检查一个变量是否不为零
if(discount != nil && discount != 0)
...
end
还有更好的办法吗?
我使用下面的代码来检查一个变量是否不为零
if(discount != nil && discount != 0)
...
end
还有更好的办法吗?
当前回答
在处理数据库记录时,我喜欢使用迁移帮助器将所有空值初始化为0:
add_column :products, :price, :integer, default: 0
其他回答
我相信下面的代码对于ruby代码来说已经足够好了。我不认为我可以写一个单元测试来显示这个和原来的有什么不同。
if discount != 0
end
unless [nil, 0].include?(discount) # ... end
你可以利用NilClass提供的#to_i方法,它将为nil值返回零:
unless discount.to_i.zero?
# Code here
end
如果折扣可以是小数,则可以使用#to_f来代替,以防止数字四舍五入为零。
if discount.nil? || discount == 0
[do something]
end
unless discount.nil? || discount == 0 # ... end