タプルをそれぞれの変数に展開するときにも `@` が使える
FP in Scala の日本語訳読んでます。
読んでることとは直接関係ないですが、例えばこんな関数があったとします。
// 第6章 純粋関数型の状態から // RNG は乱数生成の状態を表すオブジェクトだと思ってください。 def nextInt: (Int, RNG) = ???
この関数を変数に取る際、それぞれ別の変数に分割して取ることができます。
// i には生成した乱数が、nextRng には状態が取れる。 val (i, nextRng) = nextInt
「べつの変数にも分割して取りたいけど、パターンマッチみたいにタプルも一緒に取りたいなー」と思ってたら、同じ書き方で取ることができるようです。知らなかった・・・。
// tpl には結果のタプルがそのまま取れる。 val tpl @ (i, nextRng) = nextInt
私が知らなかっただけかもしれませんが、少し感動したのでブログ書きました。