val x = for(i <- 1 to 3) yield i
x match {
case 1 :: rest => ... // compile error
}
constructor cannot be instantiated to expected type; found : collection.immutable.::[B] required: scala.collection.immutable.IndexedSeq[Int]Cách thành ngữ để mô hình hóa sự khớp chuỗi là gì?
Đây cũng là vấn đề tương tự như MatchError when match receives an IndexedSeq but not a LinearSeq.
Câu hỏi đặt ra là, làm cách nào để thực hiện đúng? Thêm .toList
ở mọi nơi có vẻ không đúng. Và tạo ra một bộ tách riêng xử lý mọi Seq
(như được mô tả trong câu trả lời của câu hỏi khác) sẽ dẫn đến một mớ hỗn độn nếu mọi người ...
Tôi đoán câu hỏi là, tại sao tôi không thể ảnh hưởng đến những gì kiểu trả về của sự hiểu biết chuỗi là, hoặc: tại sao không phải là một phần trích xuất chung của thư viện chuẩn là một phần tổng hợp Seq
?
Bộ giải nén tổng quát này có sẵn trong 2,10: 'val a +: b = 0 cho đến 10' hoạt động như' val a :: b = (0 đến 10) .toList' thực hiện trong 2.9. –
Hmm, rất thú vị! Mặc dù tôi không chắc chắn nếu nó cũng sẽ tạo ra một chút lộn xộn có hai vắt cho danh sách. Là vắt này sau đó nghĩa vụ phải thay thế ::? Sau khi tất cả, nó có thể làm điều tương tự và là chung chung hơn. – letmaik
@TravisBrown thật hữu ích. Có tương đương với Nil' của List không? –