[#2023] Class Method の index — (Dezawa Shin-ichiro) <dezawa@...>

出沢です

13 messages 1997/02/02

[#2158] [Req] pack/unpack — keiju@... (Keiju ISHITSUKA)

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

14 messages 1997/02/18
[#2166] Re: [Req] pack/unpack — matz@... (Yukihiro Matsumoto) 1997/02/18

まつもと ゆきひろです.

[#2277] ruby 1.0-970228 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです.

16 messages 1997/02/28

[ruby-list:2054] Re: ruby 1.0-970204 available

From: matz@... (Yukihiro Matsumoto)
Date: 1997-02-05 02:36:47 UTC
List: ruby-list #2054
まつもと ゆきひろです.

In message "[ruby-list:2050] Re: ruby 1.0-970204 available"
    on 97/02/04, sinara@blade.nagaokaut.ac.jp <sinara@blade.nagaokaut.ac.jp> writes:
|原です。

|>   * Hash of hash/array: 結局Hashはid,Arrayは内容で見てます.
|
|そうでしたか。デフォルトをどうするかという事にすぎないけど、
|難しいところでしたね。

まあ,どちらに決めてもそうでない方が嬉しい使い方は存在するの
で難しいところでした.結局,Hashは対応表としてのアイデンティ
ティが重要で,内容はそれほどでもないだろうということで,id一
致にしました.Arrayは悩ましいところなんですけど,一応名前な
しの構造体として内容をキーとすることが多かろうとということで
内容一致にしました.

もっともHashやArrayをキーにするということはかなり例外的な状
況だと思いますので,どちらでも明確であれば良いということはい
えると思います.

|ところで、少し仕様が変わりました。

これはnilがObjectのサブクラスになったからです.昔のrubyでも
nilの代わりに1を代入しようとすれば同じエラーになります.これ
は,仕方がないところでしょうね.

もともとEnumerableはinclude元がeachを定義していることを要求
しますから,トップレベル(つまりObejct)にincludeしてはいけな
いものなんですね.

|#include Enumerable すると多重代入の意味が変わる事を
|#今日まで知りませんでした。

ちょっと解説すると多重代入の右辺が配列でない時,to_aメソッド
を使って配列に変換しようとします.で,Enumerableをincludeす
ると(eachがあるものと思って)eachを使って配列を生成するように
to_aを再定義します.普通のクラスはeachを定義していませんから,
エラーになるというわけです.

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


In This Thread