パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Ruby 1.9.0 リリース」記事へのコメント

  • rake, gem (スコア:2, 参考になる)

    by Anonymous Coward
    個人的にはYARVにはあまり興味なくて、
    - rakeとgemが標準付属。
    - Enumerable強化。enumerator組み込み。
    - m18n。
    - Hashが順序を保持。
    あたりが大きい。

    あと、何も知らずに1.9.0でRubyデビューしていらん苦労をする人が続出しそうなのが(ちょっと前から散見される)怖いな。

    • by Anonymous Coward
      > - Hashが順序を保持。

      についてもう少し知りたい。キーの順序を保持?
      連想配列の実装が二分木になったとか、そういう話ですか?
      • by Anonymous Coward
        キーが常時ソートされた状態で保持されるという意味ではなく、each(など)で列挙すると追加した順序で出てくるという意味です。
        • by Anonymous Coward
          へー、どういう実装になっているんだろ。
          • へー、どういう実装になっているんだろ。

            [ruby-dev:24570] [nagaokaut.ac.jp] (と、 #1272878 [srad.jp] で紹介されている [ruby-list:43896] [nagaokaut.ac.jp] を含むスレッド) を読むと、ハッシュテーブルの各エントリーに、追加順で次のエントリーと前のエントリーへのポインターを付けて、二重リンクリストにしてあるようです。キーによる問合せをしたい場合はハッシュテーブルとして使い、要素を列挙したい場合はリストとして使います。

            この方法だと、当然ながら、必要な領域の増分は 1 要素あたり定数、追加や削除に必要な時間の増分は 1 操作あたり定数、列挙は 1 要素ごとに定数時間でできます。削除が不要な場合は、追加順を保持しない通常のハッシュテーブルのほかに追加順を保持するためだけの配列なりリストなりを持つことが多いと思いますが、この方法に比べて Ruby で採用している方法には削除も速いという利点があります。

            # Ruby はほとんど使っていません。

            親コメント

犯人はmoriwaka -- Anonymous Coward

処理中...