[ruby-list:46487] Re: "<<" の使い方

From: "NARUSE, Yui" <naruse@...>
Date: 2009-10-27 07:11:33 UTC
List: ruby-list #46487
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>

In This Thread