以下の例では、私は_ *用法とちょっと混乱しています。これは異なった振る舞いをしており、これを理解することは完全に失われています。_ *用法はスカラパターンマッチングです
val p1="scala".r
val p2="([0-9]+[.]?[0-9]*|[.][0-9]+)$".r
"scala" match {case p1(_) => true case _ => false } // return false
"scala" match {case p1(_ *) => true case _ => false } // return true
"9" match {case p2(_) => true case _ => false} // return true
ありがとうございました。
を参照してください:代替、あなたはあなたの最初の行(義務最初のキャプチャグループを表す
_
がここに削除される)とcase p1()
を使用することができ、そしてそれはあまりにも、動作するよう'match'はパターンのキャプチャグループを必要とします。 '_ *'では、この要件は無視されます。 –