¿Por qué no es [1..5] == [1,2,3,4,5]
?¿Por qué no es [1..5] == [1,2,3,4,5]?
¿Por qué no es [1..5].to_a == [1,2,3,4,5]
?
Cómo convertir de [1..5]
a [1,2,3,4,5]
?
¿Por qué no es [1..5] == [1,2,3,4,5]
?¿Por qué no es [1..5] == [1,2,3,4,5]?
¿Por qué no es [1..5].to_a == [1,2,3,4,5]
?
Cómo convertir de [1..5]
a [1,2,3,4,5]
?
[1..5]
es una matriz que solo tiene un elemento, el objeto de rango 1..5
[1..5].to_a
sigue siendo [1..5]
(1..5).to_a
es [1,2,3,4,5]
[1..5]
es una matriz con un elemento, un objeto de rango, todos los intentos de iterar a través de él fallarán. array puede tener muchos tipos de objetos en ellos. En mi ejemplo anterior trato el rango como solo un rango y hago cualquier arreglo desde él directamente.
1.9.3-p125 :008 > (1..5).to_a # Note regular parens.
=> [1, 2, 3, 4, 5]
1.9.3-p125 :009 >
hacer más estrechamente lo que usted dijo - a partir de [1..5] - se podía hacer:
1.9.3-p125 :013 > newarray = []
1.9.3-p125 :014 > [1..5][0].each {|e| newarray << e}
=> 1..5
1.9.3-p125 :015 > newarray
=> [1, 2, 3, 4, 5]
1.9.3-p125 :016 >
'[1..5]' es lo mismo que '[(1..5)]' (una Matriz que contiene un objeto Range). El 'inspeccionar' no es muy útil si esto no se entiende, pero pruebe' [1..5] [0] 'en el REPL, lo que debería aclarar las cosas. –
Amplíe el rango con '[* 1..5]' –