TODESKING
技術ブログ

Scala、unapplyまとめ

match式のパターンとしてunapply/unapplySeqが定義されたオブジェクトを指定することで、動作をカスタマイズできる。

参考資料は例によってScala Language Specification Version 2.9(pdf)。ちょっと古いけどこのへんのルールは今も変わってないと思われる。Chapter 8あたり。

引数 メソッド
() unapply(a:A):Boolean
(p1) unapply(a:A):Option[T1]
(p1, ..., pn) unapply(a:A):Option[(T1, ..., Tn)]
(p1, ..., _*) unapplySeq(a:A):Seq[T]

Comments