스칼라에서는 문자열의 임의 문자를 기준으로 Seq [Char]로 처리하여 패턴을 공식화 할 수 있습니다.문자열을 Seq [Char]로 매칭하는 패턴
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
}
}
}
나는이 함께이 문제는 조각의 세 번째 줄은 다음과 같습니다
이 기능의 예는이 거기에 사용 된 예제 코드 A Tour of Scala
에서 언급 :
val z: Seq[Char] = x
왜 이런 종류의 캐스트가 필요한가요? 모든 상황 (패턴 일치 포함)에서 문자열이 Seq [Char]처럼 동작해야합니까? 그러나이 변환이 없으면 코드 스 니펫이 작동하지 않습니다.
그것은 많은 의미를 가지며 기본적으로 제가 추측 한 것입니다. 그러나 암시 적 변환기를 찾지 못했습니다. 그것을 지적 주셔서 감사합니다. 기본적으로 이는 Java 상호 운용성의 주요 이점으로 일부 유형의 건전성을 희생합니다. –
유형이 손상되지 않습니다.암시 적 변환은 컴파일러에서 z와 같은 함수 호출을 삽입하는 것입니다. Seq [Char] = string2Seq (x) –