1

言語を学ぼうとして、いくつかの Scala コードを見直しています。次のような部分に遭遇しました。

 case x if x startsWith "+" => 
          val s: Seq[Char] = x
          s match {
            case Seq('+', rest @ _*) => r.subscribe(rest.toString){ m => }
          }

この場合、正確には何をしているのrest @ _*でしょうか。これはpattern matchシーケンス用であることは理解していますが、シーケンスの 2 番目のパラメーターが何をすべきかを正確に理解していません。

より多くのコンテキストを求められたので、これを見つけたコードブロックを追加しました.

4

2 に答える 2

5

_*Seq を varargs としていくつかのメソッド/コンストラクターに適用するという形で以前に遭遇したことがある場合は、次のようになります。

val myList = List(args: _*)

次に、これはこれの「unapply」(具体的には「unapplySeq」を検索) バージョンです。シーケンスを取得して「varargs」に変換し、結果を に割り当てrestます。

于 2013-10-04T01:55:03.130 に答える