val a, b = 0 // a -> 0, b -> 0 val c, d = (1, 2) // c -> (1, 2), d -> (1, 2) val (e, f) = (3, 4) // e -> 3, f -> 4 val (g, _) = (5, 6) // g -> 5 val (_, i, _) = (7, 8, 9) // i -> 8 val j :: k :: _ = List(10, 11, 12, 13, 14, 15) # j -> 10, k -> 11
多重代入っぽいものは、パターンマッチによって実現されているので、定義式の右辺はパターンマッチによって分解されうるオブジェクトでないといけない。
パターンマッチなので、アンダースコアをつかったプレースホルダーもつかえる。
Rubyのようにちゃらっと書けるまでまだ時間がかかりそうだけど、かなり柔軟にできそうなかんじなので乞うご期待。