2D 配列をコンソールに出力しようとしています。この質問の最後にある目的の出力に示されているように、配列内の情報を適切にフォーマットする必要があります。私の配列は次のように作成されます(インスタンスはFamilyMember
クラスから作成されます):
#family_members.rb
class FamilyMember
attr_accessor :name, :sex, :status, :age
def initialize (name, sex, type, role, age)
@name = name
@sex = sex
@type = type
@role = role
@age = age
end
end
# Below, an array is created called fm; instances of the class are then instantiated within the array elements
fm = {}
fm[1] = FamilyMember.new('Andrew','Male', 'Child', 'Son' , '27' )
fm[2] = FamilyMember.new('Bill','Male', 'Parent', 'Father' , '63' )
fm[3] = FamilyMember.new('Samantha','Female', 'Parent', 'Mother' , '62' )
fm[4] = FamilyMember.new('Thomas','Male', 'Child', 'Dog' , '10' )
fm[5] = FamilyMember.new('Samantha', 'Female', 'Child', 'Dog' , '4' )
配列の内容を文字列としてフォーマットされたコンソールに出力できるようにしたいと考えています。これを 2 つの方法で実行できるようにする必要がありeach
ますdo
。
私が試みたこと(以前のSOの質問に触発された):
def eacharray(an_array)
an_array.each do |inner|
puts inner.join(" ")
end
end
eacharray(fm)
ただし、上記の出力は次のとおりです。
1 #<FamilyMember:0x000000027e7d48>
2 #<FamilyMember:0x000000027e7c58>
3 #<FamilyMember:0x000000027e7b68>
4 #<FamilyMember:0x000000027e7a78>
5 #<FamilyMember:0x000000027e7988>
each
および?を使用して適切にフォーマットされた 2D 配列要素を出力するにはどうすればよいdo
ですか。どんな助けでも感謝します。ありがとう。
理想的には、私の出力は次のようになります。
Family Member Name Sex Type Role Age
1 Andrew Male Child Son 27
2 Bill Male Parent Father 63
3 Samantha Female Parent Mother 62
4 Thomas Male Child Dog 10
5 Samantha Female Child Dog 4