作者: T.Watanabe
日時: 2006/3/21(09:13)
  ねこ丸です。

機械伯爵 wrote:

>  まぁ、そんな人はオブジェクト自作まで手を出さないとは思うんで
> すけどね(私の知ってる生徒で、オブジェクト自作してるのは誰も
> いなかった)

  最近 Hash オブジェクトを作ってみようーと思って書いていたのですが、結構
面倒くさいですね。
  まず Array を調査。すると Array のままでも key を指定して

  arr['key'] = val;

  と書いて値を保存できるし、取り出すこともできる。しかし for ( in ) でプ
ロパティを列挙させてみると、この形でセットした値は取り出せない。なんじゃ
こりゃーということであちこち見て回るとどうも普通に function を使ってオブ
ジェクトを作るのが主流の様子。
  しかしそうすると今度は for ( in ) でメソッドまで出てきてしまうんです
ね。例えば has_value() とか merge() とか欲しいからそのメソッドを足してい
くわけですが、for ( in ) で単純にプロパティにアクセスするわけにいかない
から、あれか、イテレータだ!あれ書くんだ!とか思った辺りで面倒くさくなっ
てくる。というかメソッドを追加したらその分 key として使える名前が減っ
ちゃうじゃん、これ。どうしたらいいんだ。
  Hash オブジェクトの中に key が入る Array, value が入る Array をプロパ
ティに用意して、あとはそいつらを操作するメソッドを足していく?  そもそも
オブジェクトはハッシュテーブルなのに、なんだこの遠回り感は。

  ということで具体的には頓挫してます。
  どーしたらいいんでしょうね?

--
    ねこ丸