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

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

by Yugui-2 :: Rate this Message:

Reply to Author | View in Thread

Yuguiといいます。

07/08/23 に Tanaka Akira<akr@...> さんは書きました:
> In article <87zm0kaz60.fsf@...>,
> というわけで、Hash::Ordered とかとして別に作るのがいいんじゃ
> ないですかね。
>
> そして、リテラルの {} を Hash::Ordered にするとかどうですか
> ね。{} にはどこにも hash という単語が出てきませんし、記法と
> しても順序がありますし。まぁ、1次元の文字列でプログラムを書
> く以上、順序の無い記法というのはまずありえないわけですが...

同意です。
 * Hashという名前である以上は順序は期待できないのが自然だと思います
 * 順序を保たないで効率を重視したい場合の選択肢を残して欲しいです。
 * リテラルには順序があるように見えるという意見には一理あります。
 * リテラル表記を用いる大部分のケースにおいて、順序を保つコストは
   許容できると思います。

なので
 * Hashクラスは現状維持
 * Hash::Orderedを新設
 * 従来ハッシュリテラルと呼ばれていた表記はHash::Orderedのリテラルに。
 * Hash[:a => 1, :b => 2]のような表記でHashのインスタンスを生成できればばよい。

--
Yugui
yugui@...
http://idm.s9.xrea.com

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