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>