Ruby:如何增加一个可能为零的数字?

时间:2011-09-16 06:28:53

标签: ruby

我如何在Ruby中简化这一点:

x = (x || 0) + 1

3 个答案:

答案 0 :(得分:26)

您可以使用to_inil转换为0

x = x.to_i + 1

或者您可以使用succ

x = x.to_i.succ

答案 1 :(得分:7)

这取决于你认为简单的事情。你可以用

(x ||= 0) += 1

但我想我会满足你的版本。

如果x是哈希值,请参阅this answer以使用哈希值中的默认值。

答案 2 :(得分:3)

您的代码可能会以错误结束:

x = 'a'
x = (x || 0) + 1 #can't convert Fixnum into String (TypeError)

可以将to_i+1succ一起使用(参见Chandras answer

但也许只有succ也会帮助你:

x = x.succ if x.respond_to?(:succ)

正确的答案取决于您的输入数据和您需要的内容。