Tôi nhận được thông báo lỗi về "lỗi: đối số kiểu [Bất kỳ] không tuân theo đặc điểm loại tham số Cloneable của [+ A <: AnyRef]", mà tôi có thể 't làm cho người đứng đầu hoặc đuôi của.Thêm vào bản đồ scala trong vòng lặp cho câu lệnh vòng lặp và điều kiện
Cụ thể,
var M = mutable.Map[Int, mutable.Set[Int]]()
for(i <- 1 to 100; j <- 1 to 100) {
if(!M.contains(i)) {M += i -> mutable.Set[Int](j)}
else {M(i) += j}
}
(Tôi thực sự cố gắng một cái gì đó phức tạp hơn, nhưng điều này là mã tạo lỗi chỉnh và đơn giản hóa đến mức tối thiểu)
Và dòng cuối cùng của đoạn mã trên tạo thông báo lỗi. Nếu tôi chia nhỏ hơn nữa
for(i <- 1 to 100; j <- 1 to 100) {
if(!M.contains(i)) {M += i -> mutable.Set[Int](j)}
}
nó hoạt động!
Làm cách nào để mã trên hoạt động?
là một lưu ý phụ, 'M + = i -> (M.getOrElse (i, mutable.Set [Int]()) + j)' sẽ là một cách thành ngữ hơn một chút để viết phần thân của vòng lặp. –
@Travis Cảm ơn! Đó là giải pháp tôi đang tìm kiếm. Nếu bạn chuyển đổi nhận xét của mình thành câu trả lời, tôi rất sẵn lòng chọn nhận xét đó. – JasonMond
Cảm ơn, nhưng tôi nghĩ rằng các câu trả lời dưới đây có thể làm tốt hơn trong việc giải quyết các câu hỏi như đặt ra? –