2011-09-16 12 views

Respuesta

23

Se puede utilizar para convertir to_inil a 0

x = x.to_i + 1

O puede utilizar succ

x = x.to_i.succ

3

Su código puede terminar en un error:

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

Existe la posibilidad de utilizar to_i con +1 o succ (ver Chandras answer)

Pero tal vez sólo succ le ayudará también:

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

La respuesta correcta depende de los datos de entrada y lo que necesita .

7

Eso depende de lo que considere simple. Puede usar

(x ||= 0) += 1 

pero creo que me conformaré con su versión.

Si x es un valor Hash, consulte this answer para utilizar los valores predeterminados en Hashes.

+2

Esto no funciona en Ruby 2.0 –

Cuestiones relacionadas