« Return to Thread: [ruby-list:43857] Hashへの生成順は保障されないのか?

[ruby-list:43903] Re: Hashへの生成順は保障されないのか?

by Fujimoto Hisa :: Rate this Message:

Reply to Author | View in Thread

藤本です。

以前、人の書いたC++のプログラムを読んでいて、mapのイ
テレータを使っている
簡単なコードが何をしてるのかしばらく理解できなかったことがありま
す。C++の
map(順序あり)をRubyのHash(順序なし)のよ
うなものであると、自分が勘違いし
ていたのが原因でした。

勘違いとはいえこのような経験をした立場からは、Hash自体の順
序の意味を簡
単に変えてしまって本当にいいのかなという疑問が残ります。

と、スレッドを読んでいて考えていたのですが…

On 2007/08/21, at 19:29, SASADA Koichi wrote:

>  ささだです。
>
> Akinori MUSHA wrote:
>>  1.9 においても、 Hash という名前のクラスで順序
>> を保証することには
>> 反対です。別クラスにするか、せめて生成時オプションにしてほし
>> い。
>
>  理由はなんでしょう。実装上たまたま順序が保障されているという
> のは良
> いでしょうか。それとも、これも混乱を招く(保障されてると思って
> どんど
> んコードを書いちゃう人がいる)からダメでしょうか。

>  名前を変えるのは賛成なのですが、問題なのは多分リテラルで簡単
> に書け
> るかどうかってことだと思うのですよねぇ。

順序が保障されているHashのリテラルが書けると、Objective-
Cのメソッ
ド呼出しに便利だということに気付きました。


藤本尚邦


 « Return to Thread: [ruby-list:43857] Hashへの生成順は保障されないのか?