Ruby: method to print and neat an array
82,022
You can use the method p
. Using p
is actually equivalent of using puts
+ inspect
on an object.
humans = %w( foo bar baz )
p humans
# => ["foo", "bar", "baz"]
puts humans.inspect
# => ["foo", "bar", "baz"]
But keep in mind p
is more a debugging tool, it should not be used for printing records in the normal workflow.
There is also pp
(pretty print), but you need to require it first.
require 'pp'
pp %w( foo bar baz )
pp
works better with complex objects.
As a side note, don't use explicit return
def self.print
return @@current_humans.to_s
end
should be
def self.print
@@current_humans.to_s
end
And use 2-chars indentation, not 4.
Author by
Manza
Updated on April 04, 2020Comments
-
Manza about 4 years
I am not sure if this question is too silly but I haven't found a way to do it.
Usually to puts an array in a loop I do this
current_humans = [.....] current_humans.each do |characteristic| puts characteristic end
However if I have this:
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
It doesn't work.
Of course I can use something like this
puts Human.current_humans.inspect
but I want to learn other alternatives!