Rubyの「Hash」は万能ツールです
(akshaykhot.com)- 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
ああ、理解できたらおじさん認定ですね :)