【发布时间】:2020-05-18 14:13:45
【问题描述】:
我有一个数组曲目,它位于另一个称为专辑的数组中。我有以下代码允许用户输入albums[index],如果存在,则允许用户输入tracks[index]。如果这也存在,则打印出这些索引中存在的专辑和曲目。
但是,当我运行代码时,我得到的不是专辑名称和曲目名称,而是以下输出:
The selected track is The selected track is #<Track:0x2fca360> #<Album:0x2fca960>
这里是相关代码sn-ps:
def play_selected_track(albums,tracks)
# ask user to enter ID number of an album in the albums-list
puts "Enter album id:"
album_id = gets.chomp
index = 0
while (index<albums.length)
if (album_id=="#{index}")
puts "Please enter track id:"
track_id = gets.chomp
j = 0
while (j<tracks.length)
if (track_id == "#{j}")
puts "The selected track is " + tracks[j].to_s + " " + albums[index].to_s
end
j += 1
end
end
index += 1
end
end
def main
# fix the following two lines
music_file = File.new("albums.txt", "r")
albums = read_albums_file(music_file)
tracks = read_tracks(music_file)
print_albums(albums)
music_file.close()
play_selected_track(albums,tracks)
end
【问题讨论】:
-
为什么你认为
Track#to_s或Album#to_s会输出它的名字?你应该改用tracks[j].name' andalbums[index].name`。
标签: ruby