- RubyのHashは、キーに値を対応付ける組み込みデータ構造。O(1)
- 他の言語ではキー/バリューを管理するクラスが多いが、RubyはHashクラスひとつでキー/バリューのペアを管理
- 非常に柔軟なデータ構造で、データオブジェクト / 辞書 / ハッシュテーブル / ソート済みリストなどのほか、さまざまな用途に使える
- シンボル/文字列/整数を含む、ほぼすべてのオブジェクトをキーとして使用可能
fetch メソッドでキーがない場合のデフォルト値を設定可能
delete でキーを削除可能。存在しないキーを呼び出しても問題ない
- ネスト可能
- そのキーが存在しなければ
nil を返すが、default 属性でデフォルト値を指定可能
- Enumerableモジュールを含んでおり、
each, each_key, each_pair, each_value, keys, values などのメソッドでハッシュをイテレーション可能
- ダブルスプラット演算子
** でハッシュ内の内容をアンパック可能
- そのほか便利なメソッド:
any?(key), compact, empty?, merge, hash.eql? obj, except(*keys), reject, filter & select, fetch_values(*keys), has_key?, member?, include?, key?, has_value?, value?, length, size, count, slice(*keys), transform_values, flatten
9件のコメント
大学でCを学び、Pythonのリストに初めて触れたときの感動を思い出します。
「スイスアーミーナイフ」を「マクガイバーナイフ」と訳そうとしたが、今どきの人には通じない気がしたので、「万能ツール」に。
マクガイバーくらいまではOKだと思いますが、スイスアーミーナイフは聞いたことがないと難しそうですね(笑)
10代の私でも理解できました。知らない人はあまりいないようです
うわ、驚きの発見ですね。自分は本当に知らないと思っていました。
それはそうと、GeekNewsユーザーの中に10代の方もいらっしゃったんですね.. 素敵です!
意外にも10代の開発者も増えていて、GeekNewsに触れる学生開発者の方々も少しずつ増えているようです。
私もほんの9か月前までは10代でしたからね...
『マクガイバー』というドラマがあったことを知らない人は多いですが、それでも「マクガイバーナイフ」という言葉はみんな通じるようです。
もうことわざみたいな地位だから大丈夫なんじゃないでしょうか? とりあえず20代の私は理解しました :D
ああ、理解できたらおじさん認定ですね :)