我有一个文本文件,我正在打开并从中创建对象。它看起来像这样:
/home/music/Accident Murderer.mp3|4:37| Nas | Accident Murderer
/home/music/Bitch Bad.mp3 |4:49| Lupe Fiasco| Bitch Bad
/home/music/ITAL.mp3 |4:24| Lupe Fiasco| ITAL(Roses)
/home/music/The Coolest.mp3 |5:13| Lupe Fiasco| The Coolest
然后我使用以下代码创建歌曲对象:
songs = SongList.new
songFile = File.open('./songs.txt')
songFile.each do |line|
file, length, name, title = line.chomp.split(/\s*\|\s*/)
name.squeeze!(" ")
mins, secs = length.scan(/\d+/)
songs.append Karaoke::Song.new(title, name, mins.to_i*60+secs.to_i)
end
但是我收到以下错误消息:
songlist.rb:40:in `block in <class:SongList>': undefined method `squeeze!' for nil:NilClass (NoMethodError).
有人可以帮忙吗。我不明白为什么要“挤”!是一个未定义的方法。这是一个字符串类方法对吗?