rubyを書くときはmethod chainでつなげていくことが多いと思いますが、途中でnilが出てきたとき困ってしまいます。例えば
str.split("/").last.split(".").last
のようなコードがあったときにstr
に空文字が入ると途中でnilが出てきて死にます。clojureだとnil safeなthreding macroというのが公式にあって、nilが途中できたら計算を途中で止めてnilを返させることができます。
rubyではどうやるのかと思っていて、ちょっと探した感じだとgemのtryというやつを使うとよさそうです。
Object#sendっぽい感じで使えるみたい。
require 'active_support/core_ext/object/try' s.try(:strip)
1週回って、あーこれmaybeモナド(失敗するかもしれない計算をつなげるやつ)だわーとなるまでには時間はかかりませんでした。

- 作者: Miran Lipovača,田中英行,村主崇行
- 出版社/メーカー: オーム社
- 発売日: 2012/05/23
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 580回
- この商品を含むブログ (69件) を見る