嘿傢伙我覺得我很接近這一點,但像往常一樣,我認爲我會輕微地搞亂語法。目標是解析mime.type文件以查看MIME類型是否具有擴展名。我必須做一個散列。輸出應該讀的東西一樣,「富/酒吧有擴展的垃圾郵件,雞蛋,還是應該讀‘富/條無extionsions’如果擴展沒有vlaue這裏是我的進步迄今:使用散列解析mime.types的擴展
#!/user/bin/ruby
#comment line
lineHash = Hash.new
File.open("/etc/mime.types", "r") do |file|
file.each_line do |line|
next if line[0] == ?#
next if line == "\n"
line = line.chomp.split
lineHash[line[0]] = line[1..-1]
end
end
lineHash.each do |key, value|
if value.length == 0
puts key + ' has no extensions.'
else
puts key + ' has extensions ' + value.join(',')
end
end
的錯誤我收到當我運行該腳本是:
parsemime.rb:13:in block in <main>': undefined method 'length' for nil:NilClass (NoMethodError)
from parsemime.rb:12:in 'each'
from parsemime.rb:12:in '<main>'
好像是失敗的lineHash.each做|鍵,值|因爲這是線12 線13(下一行)正在讀一個未定義長度方法
我發電子郵件給我的教授指導和w如所告知的:「我收到的錯誤表明解釋器行不正確。正確的路徑可以通過發出哪個ruby命令來確定。「
我不確定這是什麼意思說實話。我試圖把一段時間放在lineHash.each do | key,value |並收到一個這裏說的語法錯誤意外「|」,期待「=」
倘使你打印出來的線條前當你處理它們時,你可以看到它失敗的那一行。 –
添加了我的註釋行,並更好地描述了發生錯誤的位置 –
對不起,我的意思是'/ etc/mime.types'哪行失敗? –