【发布时间】:2016-05-22 18:27:07
【问题描述】:
我是 ruby 新手,并且有以下代码读取文件,然后将符号用“|”分隔登录到 Struc 数据类型的不同属性:
Song = Struct.new(:title, :name, :length)
song_file = File.new("songdata.txt")
songs = []
song_file.each_line do |line|
file, length, name, title = line.chomp.split(/\s*\|\s*/)
songs << Song.new(title, name, length)
end
p songs
文件 songdata.txt 包含以下 txt:
/jazz/j00132.mp3 | 3:45 | Fats Waller | Ain't Misbehavin'
/jazz/j00319.mp3 | 2:58 | Louis Armstrong | Wonderful World
/bgrass/bg0732.mp3| 4:09 | Strength in Numbers | Texas Red
但是,当我去打印数组歌曲时,它只包含文本文件的第一行。关于为什么会这样的任何想法?
【问题讨论】:
-
我在我的机器上运行了这个确切的代码和这个确切的输入文件,但是得到了所有三行。你确定它行为不端?你有什么版本的红宝石?
-
您确定这是您使用的输入吗?适合我。
-
2.3.0 - 是的,说其他索引为零
-
你们的txt文件都用什么?
-
该代码看起来不错。一定是发生了其他事情。