Option/Maybeとかで解決していることを、さながらgolangのようにES6のdestructuring assignmentで解決する

ES6から使えるようになるdestructuring assignmentを使って、タプル的に返して受け取れば、複数の値を楽に受け取れるので、エラーハンドリング的なものが楽にできるようになりますよね!という話です。先日書いたライブラリで解決・緩和しようとしていた問題に対する別のアプローチ。

今更言うまでもない、おそらく常識的なテクニックの話なんですが、みんなES6の話をしているのに、こういう使い方の話をロクにしていないので「こういう話しようぜ!」と喧嘩を売る意味で書きました。

let fn = function () {
  return [
    true, // 関数が正常処理できたか or 値の有無とか
    100, // 実際の値 
  ];
};

let [ok, val] = fn();
if (!ok) {
  return; // 正常処理できていない, 値が特になかったので帰る
}

まあ、まんまgolangのmultiple resultsなんだけど。

golangのmultiple resultは、手続き型の枠内で、Maybeとか入れずにMaybeで解決しようとしていた問題に(過程は知らないが結果として)取り組んだアプローチとして、ああなるし、よくできているなあと思う次第です。