在 Scala 中,可以通过将字符串视为 Seq[Char] 来基于字符串的单个字符来制定模式。
A Tour of Scala中提到了此功能的一个示例
这是那里使用的示例代码:
object RegExpTest1 extends Application {
def containsScala(x: String): Boolean = {
val z: Seq[Char] = x
z match {
case Seq('s','c','a','l','a', rest @ _*) =>
println("rest is "+rest)
true
case Seq(_*) =>
false
}
}
}
我遇到的问题是代码段的第三行:
val z: Seq[Char] = x
为什么这种演员阵容是必要的?在所有情况下(包括模式匹配),字符串不应该表现得像 Seq[Char] 吗?但是,如果没有这种转换,代码片段将无法工作。