我如何在Ruby中简化这一点:
x = (x || 0) + 1
答案 0 :(得分:26)
您可以使用to_i
将nil
转换为0
x = x.to_i + 1
或者您可以使用succ
x = x.to_i.succ
答案 1 :(得分:7)
答案 2 :(得分:3)
您的代码可能会以错误结束:
x = 'a'
x = (x || 0) + 1 #can't convert Fixnum into String (TypeError)
可以将to_i
与+1
或succ
一起使用(参见Chandras answer)
但也许只有succ
也会帮助你:
x = x.succ if x.respond_to?(:succ)
正确的答案取决于您的输入数据和您需要的内容。