Trong Scala có thể xây dựng các mẫu dựa trên các ký tự bất thường của một chuỗi bằng cách xử lý nó như là một Seq [Char].Mẫu phù hợp với một chuỗi như Seq [Char]
Một ví dụ về tính năng này được đề cập trong A Tour of Scala
Đây là mã ví dụ sử dụng có:
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
}
}
}
Tôi có vấn đề với điều này là dòng thứ ba của đoạn :
val z: Seq[Char] = x
Tại sao loại dàn diễn viên này lại cần thiết? Không nên một chuỗi hành xử như một Seq [Char] trong mọi trường hợp (trong đó sẽ bao gồm phù hợp với mô hình)? Tuy nhiên, không có chuyển đổi này, đoạn mã sẽ không hoạt động.
Điều đó tạo ra nhiều ý nghĩa và về cơ bản là những gì tôi đã đoán. Tuy nhiên, tôi không tìm thấy trình chuyển đổi ẩn. Cảm ơn đã chỉ ra điều đó. Vì vậy, về cơ bản, đây là một sự nhượng bộ lớn cho khả năng tương tác Java, hy sinh một số loại âm thanh. –
Không có âm thanh loại nào bị mất.Chuyển đổi ngầm định chỉ là trình biên dịch chèn một hàm gọi, giống như val z: Seq [Char] = string2Seq (x) –