아래 코드를 사용하여 정보를 출력하는을 작성하고 싶습니다.다른 클래스의 객체 배열을 가리키는 인스턴스 변수로 to_s를 만들려면 어떻게해야합니까?
Southside에는 3 명의 팀 구성원이 있습니다. 그 구성원은 다음과 같습니다. 22 세의 다리오. 21 살인 Ted. Bob, 44 세.
현재 내가 얻는 내용은 다음과 같습니다.
Southside에는 3 명의 팀 구성원이 있습니다. 그 구성원은 다음과 같습니다 : I 어려운 찾는거야 부분은 팀 구성원의 배열에있는 Person 클래스 객체의 인스턴스 변수에 액세스
[#<Person:0x000000025cd6e8 @name="Dario", @age=22>, #<Person:0x000000025cd670 @name="Ted", @age=21>, #<Person:0x000000025cd620 @name="Bob", @age=44>].
#<Team:0x000000025cd7d8>
. 여기
은 두 클래스입니다 :class Team
attr_accessor :name, :members
def initialize(name)
@name = name
@members = []
end
def <<(person)
members.push person
end
def to_s
puts "#{@name} has #{@members.size} team members."
puts "Those members are: #{@members}."
end
end
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
south_side_bowlers = Team.new("Southside")
south_side_bowlers << Person.new("Dario", 22)
south_side_bowlers << Person.new("Ted", 21)
south_side_bowlers << Person.new("Bob", 44)
puts south_side_bowlers
Murad, 잘 작동합니다. 질문 : 'm_to_s'의 'to_s'가 불필요한가요? – user169320
@ user169320 원한다면'@ members.map (& : to_s) .join ('.')'을 할 수 있습니다. –
user169320, Murad는 'Team # to_s'의 두 번째 줄을''{@ members.map {| m | m_to}} .join ('.')} (뿐만 아니라'Person # to_s'를 추가하는 것) –