From: horiguchi Date: 2005-01-27T01:12:44+09:00 Subject: [ruby-dev:25554] Re: pack cannot convert nil into Integer こんばんわ。堀口です。 > |1.8.2 で以下のコードがエラーになります。 > | > |---- > |[nil].pack("L") > |---- > |:in `pack': cannot convert nil into Integer (TypeError) > | > |1.8.1 ではバイナリの 0 として出力されていました。 > |他にも "i", "c" など整数への変換でエラーが出るようです。 > | > |挙動の変更でしょうか、バグでしょうか? > > 挙動の変化ですね。今まではチェックがゆるかっただけなんですが、 > nilが0でないといけない状況がありましたか。 Integer( nil ) #=> 0 sprintf( "%d", nil ) #=> 0 からなんとなく自然に使っていました。 exerb-ml でもあがっていたようです。 http://lists.sourceforge.jp/mailman/archives/exerb-developer/2004-December/0 00446.html チェックの強化ということですが、変更点としてあげた方がいいかもしれません。 -- horiguchi