[#1219] ruby animal — OZAWA Sakuro <crouton@...>

小澤さく@塩尻Internetです.

18 messages 1996/12/09

[#1256] ruby 0.99.4-961212 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです.

21 messages 1996/12/12
[#1257] Re: ruby 0.99.4-961212 available — Yasuo OHBA <jammy@...> 1996/12/12

大庭@SHLJapanです.

[#1258] Re: ruby 0.99.4-961212 available — matz@... (Yukihiro Matsumoto) 1996/12/12

まつもと ゆきひろです.

[#1259] Re: ruby 0.99.4-961212 available — WATANABE Hirofumi <watanabe@...> 1996/12/12

わたなべです.

[#1261] Re: ruby 0.99.4-961212 available — matz@... (Yukihiro Matsumoto) 1996/12/12

まつもと ゆきひろです.

[#1290] ruby 0.99.4-961217 will be available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです.

32 messages 1996/12/17
[#1300] Re: ruby 0.99.4-961217 will be available — sinara@... 1996/12/17

原です。

[#1305] Re: ruby 0.99.4-961217 will be available — matz@... (Yukihiro Matsumoto) 1996/12/17

まつもと ゆきひろです.

[#1308] Re: ruby 0.99.4-961217 will be available — gougi@... (Shigeru Gougi) 1996/12/17

ごうぎ@TCIです。

[#1341] Re: ruby 0.99.4-961217 will be available — matz@... (Yukihiro Matsumoto) 1996/12/18

まつもと ゆきひろです.

[#1342] Re: ruby 0.99.4-961217 will be available — sinara@... 1996/12/18

原です。

[#1345] [BUG?] access string out of range — sinara@... 1996/12/18

原です。

[#1330] Re: Rational and Complex — Shin-ichiro Hara <sinara@...>

原です。

30 messages 1996/12/17
[#1335] Re: Rational and Complex — sinara@... 1996/12/18

原です。

[#1359] Re: Rational and Complex 1996/12/18

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

[#1423] 配列への grep — (Dezawa Shin-ichiro) <dezawa@...>

出沢です

14 messages 1996/12/23

[#1469] wish ... — Noritugu Nakamura <nnakamur@...>

25 messages 1996/12/24
[#1470] Re: wish ... — matz@... (Yukihiro Matsumoto) 1996/12/24

まつもと ゆきひろです.

[ruby-list:1459] Re: サブクラスの 作成再び

From: matz@... (Yukihiro Matsumoto)
Date: 1996-12-24 03:42:19 UTC
List: ruby-list #1459
まつもと ゆきひろです.

In message "[ruby-list:1458] Re: サブクラスの作成再び"
    on 96/12/24, Sinichiro Dezawa <dezawa@miya.fujifilm.co.jp> writes:

|> castってのは変数に型がある言語でだけ有効だと思うのですが.
|
|	reservList = (Reserved)[ "9a","9a","9a","9a" ]
|
|ってやって reservList を明示的に Reserved クラスにする、
|って具合に、般的な方法にならないかな、と。

一般的な方法は無いです.ごめんね.

|そう言えば、演算子の左右の型が違った時の挙動ってかいて
|あったかな、、、。

ええと,数値周りですね.ちゃんと説明している自信が無いので,
ここでもう一度説明します.

数値計算に関する演算子はメソッドとして起動されます.

つまり,

  a + b

はaのクラスの+というメソッドを起動します.ですから,左辺の型
にあったメソッドが起動されることになります.では,右辺の型は
どうするかというと

  基本的にメソッドが右辺の型に応じて処理している

のが実情です.ただし,新しく追加された型(Complexとか)にも対
応するために,数値演算のメソッドは

  知らない型はcoerceしてから再計算

という戦略を取っています.つまり概略は


  def +(other)

    case other.type
    when ...
      ...
    else
      x, y = other.coerce(self)
      x + y
    end
  end

という感じです.数値系のクラスはcoerceという型変換メソッドを
持っていまるはずなので,これを利用しています.

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

In This Thread

Prev Next