Estoy experimentando con matrices, y estoy leyendo el libro "Beginning Ruby on Rails" de Steve Holzner. Hice el programa:Array TypeError: no se puede convertir Fixnum en String
array = ['Hello', 'there', 1, 2]
puts array[1]
puts array[3]
puts array.length
array2 = Array.new
puts array2.length
array2[0] = "Banana"
array2[1] = 6
puts array2[0] + " " + array2[1]
puts array3.length
No hace mucho, pero cuando lo ejecuto me sale el error
arrays.rb:9:in `+': can't convert Fixnum into String (TypeError)
from arrays.rb:9
¿Por qué aparece este error?
Batirme por segundos. :) –
Agregaría que arrojar un error aquí es una característica de un lenguaje fuertemente tipado, del cual Ruby es un ejemplo. PHP, un lenguaje débilmente tipeado, permitiría tales argucias. – bernie
@bernie Es más un resultado directo de las reglas de coerción de tipo de Ruby, no su fuerte tipado. Por ejemplo, Float + Fixnum en Ruby es legal porque Ruby sabe cómo forzar un tipo al otro. En realidad, podría volver a abrir Fixnum y agregar un método 'coerce' que también haría legal a String + Fixnum. –