以下の内容はhttps://this.aereal.org/entry/20110716/1310814719より取得しました。


Hash#fetch と Hash#[] その2

こんなエントリを書きましたが、しかし Hash#[] にもよいところはあって、もちろんあるインデックスへのアクセスとしてわかりやすい表記であることもそうですが、「値が偽値であるかどうか」をチェックできるということがそれです。

goddess = {perl: "Larry Wall", ruby: "Matsumoto Matz Yukihiro", python: "Guido van Rossum"}
goddess[:php] = nil # I don't know the god of PHP :)
goddess.fetch(:php, "") # 空文字列かとおもった? 残念、さやかちゃんでした!
goddess[:php] # -> nil

つまり || 演算子で nil チェックができるわけですね。

しかし、そもそも nil チェック自体がダサいしバグの温床になるのでは、という考え方もあります。

存在しないキーでアクセスしようとしたら例外投げるのもありかもしれません。Hash#fetch は第二引数になにも渡さないと KeyError を投げるようになってます。よいですね。




以上の内容はhttps://this.aereal.org/entry/20110716/1310814719より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14