array - Ruby: método para imprimir y ordenar una matriz
ruby select (1)
Puedes utilizar el método p
. Usar p
es en realidad equivalente a usar puts
+ inspect
en un objeto
humans = %w( foo bar baz )
p humans
# => ["foo", "bar", "baz"]
puts humans.inspect
# => ["foo", "bar", "baz"]
Pero tenga en cuenta que p
es más una herramienta de depuración, no debe utilizarse para imprimir registros en el flujo de trabajo normal.
También hay pp
(impresión bonita), pero primero debe solicitarlo.
require ''pp''
pp %w( foo bar baz )
pp
funciona mejor con objetos complejos.
Como nota al margen, no use el retorno explícito
def self.print
return @@current_humans.to_s
end
debiera ser
def self.print
@@current_humans.to_s
end
Y use sangría de 2 caracteres, no 4.
No estoy seguro de si esta pregunta es demasiado tonta pero no he encontrado la manera de hacerlo.
Por lo general, para poner una matriz en un bucle hago esto
current_humans = [.....]
current_humans.each do |characteristic|
puts characteristic
end
Sin embargo si tengo esto:
class Human
attr_accessor:name,:country,:sex
@@current_humans = []
def self.current_humans
@@current_humans
end
def self.print
#@@current_humans.each do |characteristic|
# puts characteristic
#end
return @@current_humans.to_s
end
def initialize(name='''',country='''',sex='''')
@name = name
@country = country
@sex = sex
@@current_humans << self #everytime it is save or initialize it save all the data into an array
puts "A new human has been instantiated"
end
end
jhon = Human.new(''Jhon'',''American'',''M'')
mary = Human.new(''Mary'',''German'',''F'')
puts Human.print
No funciona
Por supuesto que puedo usar algo como esto
puts Human.current_humans.inspect
¡Pero quiero aprender otras alternativas!