2番目のファイルがコンパイルされる理由はわかりませんが、うまくいきません。あなたは、パターンシーケンスを一致させたい場合は
scala> IndexedSeq(1,2, 3).toSeq match {
case a :: b :: c :: nil => println("toto");
}
| | scala.MatchError: Vector(1, 2, 3) (of class scala.collection.immutable.Vector)
、あなたはどちらかは、+を使用する必要があります:参加事業者として、(a、b、c)は、パターンが一致するよう配列を使用しますか。必要に応じてthis answer
は、すべての作業を、以下を参照してください。
IndexedSeq(1,2, 3).toSeq match {
case Seq(a, b, c) => println("toto");
}
IndexedSeq(1,2, 3) match {
case Seq(a, b, c) => println("toto");
}
IndexedSeq(1,2, 3).toSeq match {
case a +: b +: c => println("toto");
}
IndexedSeq(1,2, 3) match {
case a +: b +: c => println("toto");
}
* Seqは、適切なコレクションを返すだけの特性です。*「形質」は、「Cons」にマッチすることができますか? 'IndexedSeq [A]'も 'trait'です。 –
それは特性ではありませんが、Seq(1,2,3)を呼び出すとConsを実装するList(1,2,3)が返されるという事実です。 – sebszyller
しかし、 'IndexedSeq(1,2,3).toSeq'は' Vector [Int] 'を返します。 –