콘솔에 2D 배열을 출력하려고합니다. 배열의 정보가이 질문 끝 부분의 원하는 출력에 표시된대로 잘 포맷되기를 바랍니다. 내가 문자열로 포맷 콘솔에 배열의 내용을 출력 할 수 있도록하려면고정 너비 열의 속성을 가진 테이블로 터미널에 객체 배열을 출력합니다.
#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')
: (인스턴스가 FamilyMember
클래스의 생성) 다음과 같이 내 배열이 만들어집니다. 이 두 가지 방법, 즉 each
을 사용하고 별도로 do
을 사용하여 수행 할 수 있어야합니다.
내가 시도 무엇 (inspired by a previous SO question는) :
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
및 do
를 사용하여 2 차원 배열 요소가 잘 포맷 된 I 출력을하는 방법 ?. 어떤 도움을 주셔서 감사합니다. 감사.
이상적으로, 내 출력은 다음과 같이 될 것이다 : 당신은 고정 된 형식에 만족하는 경우
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
예상되는 출력 .. 예를 들어이 무엇을 .. 나는이 * 나는 배열의 내용을 출력 할 수 있도록하려면하지 않았다하시기 바랍니다 콘솔은 문자열 *로 포맷됩니다. –
'fn'은 배열이 아니며 해쉬입니다. – sawa
@ArupRakshit - 내 질문에 선호 출력을 추가했습니다. 덕분에 – Tom