OrderedHash.new()にArrayを渡せるようにしておけば
OrderedHash.new([1. "One", 2, "Two"])
という書き方でリテラルもどきにできます。メリットは、
- リテラルと同様にオブジェクトの値がプログラムソースでわかる
- 文法の拡張は不要なので、下位互換性を維持できる
Akinori MUSHA さんは書きました, (2007/08/21 21:47):
> リテラル表現を用意すると、バックポートしない限り下位互
換性を
> 失いますが、それはさておき。
>
> [ x1 => y1, ... ] だと順序付きマップを生成するとか?これは今は
> [{ x1 => y1, ... ]} と解釈されますが、文法的には配列と区別可能。
>
> Set もそろそろ組み込みに…。こちらはもちろん { x, y, z, w }。
> わかりにくいか! (j/k)
>
>
> %m{ x1 => y1, ... } みたいなのもないことはないと思います。
>
>
> が、そもそもリテラル記法が必要なほど多用されるかどうか。
>