ねこ丸です。
機械伯爵 wrote:
> まぁ、そんな人はオブジェクト自作まで手を出さないとは思うんで
> すけどね(私の知ってる生徒で、オブジェクト自作してるのは誰も
> いなかった)
最近 Hash オブジェクトを作ってみようーと思って書いていたのですが、結構
面倒くさいですね。
まず Array を調査。すると Array のままでも key を指定して
arr['key'] = val;
と書いて値を保存できるし、取り出すこともできる。しかし for ( in ) でプ
ロパティを列挙させてみると、この形でセットした値は取り出せない。なんじゃ
こりゃーということであちこち見て回るとどうも普通に function を使ってオブ
ジェクトを作るのが主流の様子。
しかしそうすると今度は for ( in ) でメソッドまで出てきてしまうんです
ね。例えば has_value() とか merge() とか欲しいからそのメソッドを足してい
くわけですが、for ( in ) で単純にプロパティにアクセスするわけにいかない
から、あれか、イテレータだ!あれ書くんだ!とか思った辺りで面倒くさくなっ
てくる。というかメソッドを追加したらその分 key として使える名前が減っ
ちゃうじゃん、これ。どうしたらいいんだ。
Hash オブジェクトの中に key が入る Array, value が入る Array をプロパ
ティに用意して、あとはそいつらを操作するメソッドを足していく? そもそも
オブジェクトはハッシュテーブルなのに、なんだこの遠回り感は。
ということで具体的には頓挫してます。
どーしたらいいんでしょうね?
--
ねこ丸