[#954] Rational — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

23 messages 1996/10/30
[#955] Re: Rational — matz@... (Yukihiro Matsumoto) 1996/10/30

まつもと ゆきひろです.

[#968] Re: Rational 1996/10/31

けいじゅ@SHLジャパンです.

[ruby-list:943] coerce(Re: ruby 0.99.3-961030 available)

From: matz@... (Yukihiro Matsumoto)
Date: 1996-10-30 07:11:31 UTC
List: ruby-list #943
まつもと ゆきひろです.

In message "[ruby-list:942] Re: ruby 0.99.3-961030 available"
    on 96/10/30, 石塚圭樹 <keiju@shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです. 

|> coerceの件ですが,結局genericityは使わず,coerceが2要素の配
|> 列[x, y]を返すことで対応することにしました.良く考えると
|
|良く分からないので, もうちょっと説明して下さい.

普通の算術演算子はこうなっています(こうなりました).

  def + other
    case other.type
    when "Fixnum"
        :
    else
      x, y = other.coerce(self)
      return x + y
    end
  end

ですからRationalの場合

  def coerce other
    if other.type == "Float"
      return other, Float(self)
    else
      super
    end
  end

とすれば問題は解決できるのではと考えました.

                                まつもと ゆきひろ /:|)

In This Thread