即時通訊新的和新的紅寶石: 我有兩個類(朋友類,類列表)和一個csv文件的名稱和年齡。當我在csv-File中讀取時,我從整個文件中創建了一個新的列表對象,並且希望從該文件的每一行創建一個新的朋友對象。迭代對象分配的變量
現在我的問題: 我想爲這些朋友對象分配一個變量,但我不知道如何迭代變量。
require_relative「朋友」
class List
attr_accessor :list_name
attr_accessor :how_many
def initialize(list_name)
@list_name = list_name
@list = []
end
def add_friend(a_friend)
@list.push(a_friend)
end
def load_friend(from_file)
File.readlines(from_file).each do |line|
add_friend(Friend.from_csv(line))
end
end
end
require_relative 'list'
class Friend
attr_accessor :friend_name
attr_accessor :age
def initialize(friend_name,age)
@friend_name = friend_name
@age = age
end
def self.from_csv(string)
friend_name, age = string.split(',')
Friend.new(friend_name,age)
end
end
這裏我嘗試輸出的朋友:
#-------------------------
def value(place)
@list[place].to_s
end
def print_list
puts @liste.to_s
end
#-------------------------
puts liste1.print_list
puts liste1.wert(1)
#-------------------------
#Output
\#<Friend:0x2b94aa8 @friend_name="Hans", @age="25\n">
\#<Friend:0x2b94a30 @friend_name="Peter", @age="20\n">
\#<Friend:0x2b949a0 @friend_name="Simon", @age="30">
\#<Friend:0x2b94a30 @friend_name="Peter", @age="20\n">
#Expected output
"Hans", 25
"Peter", 20
"Simon",30
"Peter", 20
「我要分配每個朋友的對象給一個變量」 - 爲什麼你認爲你需要他們作爲獨立變量?把它們放在一個你可以迭代的數組中(看起來你已經這麼做了) –
也許是dump,但是當我放棄列表數組時,他給了我對象id,我認爲當我分配它到一個變量,然後我可以打印出價值。 – Alassar
它給出了朋友的對象ID,因爲每個朋友對象都是具有自己引用的唯一對象。爲什麼不在'class Friend'中添加'to_s'方法?這會讓你在對象列表中偷偷地看一眼。要獲得類似轉儲的東西,你必須實現一個方法,它迭代你的'list'的朋友並轉儲它的數據。 – kiddorails