Bueno, siguiendo un ejemplo de un manual, hice esto:
lineas = "Erase una vez\nen un lugar lejano...\nFin\n"
num = 0
lineas.each do |linea|
num += 1
print "Line #{num}: #{linea}"
end
Pero me da el siguiente error:
undefined method `each' for "Erase una vez\nen un lugar lejano...\nFin\n":String (NoMethodError)
Espero vuestra ayuda. Gracias.
each solo vale para los arrays creo, no se mucho de ruby, prueba así:
lineas = "Erase una vez\nen un lugar lejano...\nFin\n"
num = 0
lineas.each_line do |linea|
num += 1
print "Line #{num}: #{linea}"
end
Funcionó, gracias.
Bueno, tengo otra duda, esta algo más complicada. (Dudaba entre si ponerlo aquí o hacer otro tema. Pensé que lo mejor sería aprovechar este :huh:)
class Pollas
def initialize
num = 0
numeros = []
loop do
palabra_ingresada = gets.chomp
if palabra_ingresada != "Exit"
palabra_ingresada = palabra_ingresada.to_f
if palabra_ingresada <= 0 or palabra_ingresada >= 0
puts "Es válido"
else
puts "No has ingresado un valor correcto"
break
end
end
end
end
end
Bueno, sencillamente quiero que el usuario ingrese una cantidad de números que quiera, hasta que ponga Exit. Si pone un número, este se transformará en un "flotante", decimal, y si no pone Exit o un número, dirá que el valor no es válido. Luego quiero hacer un par de cosas con esos números, pero por ahora no consigo hacer lo que ya he dicho, me da error, y no tengo ni idea de por qué.
Siento las molestias.
Respecto a la pregunta principal, solo tienes un string (un string multi linea), no puedes iterar un string con el método each, ya que each es para un array (class que incluya el módulo Enumerable).
El método each_line internamente hace un split generando un array de string, es lo mismo que esto:
lineas = "Erase una vez\nen un lugar lejano...\nFin\n"
num = 0
lineas.split("\n").each do |linea|
num += 1
print "Line #{num}: #{linea}\n"
end
Avisé sobre respetar la norma de las etiquetas GeShi, lo siento pero sabes que ya van muchas veces :-/, puedes formular de nuevo la duda en otro post siguiendo las normas de publicación.
Tema Cerrado.