hirschkalb's blog

"I beseech you, in the bowels of Christ, think it possible that you may be mistaken."

亡き王女のための『プログラミング Ruby』

ホッテントリメーカーを信じてタイトルにしてみました。


私の頭が弱いまでというならば仕方ないですが、ちょっとオライリーの動物本が好きな私にとっては、この本、少々説明不足感があると思う。


『プログラミング Ruby 第 2 版 言語編』

p. 53 で

File.open("songdata") do |song_file|
songs = SongList.new

song_file.each do |line|
file, length, name, title = line.chomp.split(/\s*\|\s*/)
name.squeeze!(" ")
songs.append(Song.new(title, name, length))
end

puts songs[1]
end

6 行目の squeeze! が上手くいかない。*1


原因はもう分かっておりまして、「これはバグ?」という質問に対して著者が答えていらっしゃいます。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/7928

No, I think it's because you have a blank line in your data, so the #split method is not finding any fields, to the assignment is setting the variables to nil.

「空白行いれちゃだめだよ」ということだったらしいです。しかし、これ、本に書いておいてくれないかなー、なんて思ったりします。


だって、「ああ、やっぱり私はこういうのに向いてないんだ」と思って、うえの文章を、そうだな、あと数時間以内に見つけられなかったら、Ruby やめてたかもしれない(弱すぎ)。


失敗した。ホッテントリメーカーへのトラックバックを忘れちゃった。

*1:ついでに言うとはてなのスーパーpre記法とやらもうまくいかない。だからただの pre なのです。

広告を非表示にする