2009/10/27 15:44, T.Soejima wrote: > ちょっと試しに Array#push を自分で考えてみたんですが、変なところで > エラーになってしまいます。 > > class Array_push > attr_accessor :ary > def initialize > ary = Array.new > ary = nil > end > def push data > ary << data&& data # ここでエラーになってしまいます。 > end > end 意図しているのは以下のようなコードではありませんか class Array_push attr_accessor :ary def initialize @ary = Array.new end def push data @ary << data if data end end (1) インスタンス変数へのアクセサ ary ローカル変数・メソッド名である ary でなく、 インスタンス変数@aryを用いる。 ary だと ary = と代入したときに変数として扱われてしまう。 (2) 演算子 && if を用いないと常に実行されてしまう -- NARUSE, Yui <naruse / airemix.jp>