Uso irb.Crear un rango de cadenas a partir de los valores finales
Escribo el siguiente código.
"ax".."bc"
espero
"ax""ay""az""ba"bb""bc"
pero el resultado es simplemente
"ax".."bc"
¿Cómo debo corregir? Gracias.
Uso irb.Crear un rango de cadenas a partir de los valores finales
Escribo el siguiente código.
"ax".."bc"
espero
"ax""ay""az""ba"bb""bc"
pero el resultado es simplemente
"ax".."bc"
¿Cómo debo corregir? Gracias.
> puts ("ax".."bc").to_a
ax
ay
az
ba
bb
bc
Rango es una orden interna en construcción, almacenamiento interno de inicio y el punto final (y si se trata de una gama de gama inclusive) para la eficiencia. Entonces IRB solo te mostrará el literal para eso.
¿Qué desea hacer?
El rango 'ax' .. 'bc'
representa los valores que espera pero no los genera hasta que realmente lo necesita (como una manera de ahorrar tiempo y espacio en caso de que no termine usando cada valor). Puede acceder a todos a través de un interator o conversión a una matriz:
r = 'ax' .. 'bc' # => "ax" .. "bc"
r.class # => Range
r.to_a # => ["ax", "ay", "az", "ba", "bb", "bc"]
r.to_a.class # => Array
r.each {|x| puts x}
ax
ay
az
ba
bb
bc