如何在 Ruby 中简化这个问题:
x = (x || 0) + 1
?
如何在 Ruby 中简化这个问题:
x = (x || 0) + 1
?
您可以使用to_i
将nil
转换为0
或者您也可以使用succ
x = x.to_i.succ
x = x.to_i + 1
(x ||= 0)
返回一个整数,而不是 x。您不能使用 +=
运算符更改整数。 - Jussi Hirvi你的代码可能会出现错误:
x = 'a'
x = (x || 0) + 1 #can't convert Fixnum into String (TypeError)
有可能使用to_i
结合+1
或者succ
(参见Chandras答案)
但是也许只有succ
更适合您:
x = x.succ if x.respond_to?(:succ)
正确答案取决于您的输入数据和您的需求。