Estaba probando a Ruby y me encontré con String#to_i
. Supongamos que tengo este código:¿Por qué Ruby's String # to_i a veces devuelve 0 cuando la cadena contiene un número?
var1 = '6 sldasdhkjas'
var2 = 'aljdfldjlfjldsfjl 6'
¿Por qué puts var1.to_i
salida 6
cuando puts var2.to_i
da 0
?
Eso significa que si hay caracteres no enteros al principio de la cadena, to_i ignorará el resto de la cadena? – hsinxh
Exactamente, si la cadena comienza con un carácter no entero, inmediatamente detiene el análisis y devuelve 0, haciendo caso omiso de los números que puedan aparecer más adelante en la cadena. – DarkDust
Eso no es completamente cierto: analizará los caracteres en espacios en blanco. "123" .to_i evaluará a 123, al igual que una cadena que comience con una pestaña. –