2011年2月9日水曜日

Rubyには++演算子が無いと気づきました

(わたしの中では)使用頻度が低い Ruby を使ってスクリプトを書いていたら、++演算子が無いことに気がつきました。
                        ...
     53                 try_count = 0
     54                 begin
     55                         try_count++
     56                         gz = Zlib::GzipReader.wrap(workf)
     57                 rescue  Zlib::GzipFile::Error => e
     58                         if try_count < 3
     59                                 retry
     60                         else
     61                                 STDERR.puts "WARNING: "+e.message
     62                         end
     63                 ensure
                        ...
上のようなコード(gzip圧縮ファイルを直接扱う処理)を書いていたのですが、これを実行すると次のようなエラーになり、
xxx.rb:56: undefined method `+@' for #<Zlib::GzipReader:0x7f134cbb98b8> (NoMethodError)
56行目を間違っている??と思って、なんのこっちゃとアタフタすること1時間くらい。。。 もしかして++がいけないのかなと、try_count +=1 にしたらエラーが出なくなりました。 Ruby には、++ないんだねー! 知りませんでした。

2011-03-15追記
なぜなのかについては、下記を参照。
http://okwave.jp/qa/q4634346.html

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ