From: Yukihiro Matsumoto Date: 2009-06-05T07:33:48+09:00 Subject: [ruby-dev:38570] Re: [Feature #1570] 「unless インスタンス変数」での警告について まつもと ゆきひろです In message "Re: [ruby-dev:38569] [Feature #1570] 「unless インスタンス変数」での警告について" on Fri, 5 Jun 2009 05:22:27 +0900, "rubikitch ." writes: |インスタンス変数を「||=」で遅延初期化する場合は警告が出ませんが、「unless」でも出ないようにできないでしょうか? |「unless インスタンス変数; 処理; end」は手軽に使えるイディオムだと思っています。 あまり賛成しません。つまり、それは初期化しないインスタンス変 数の利用を推進する上に未定義とnilを混同するイディオムなわけで すが、それってあまり良いスタイルではないのではないでしょうか。 unless instance_variable_defined? :@foo end はイヤというのは分かるのですが、 unless defined? @foo end とかでいいんじゃないかと。あるいはinitializeの中で明示的に @foo = nil と書くとか。