Tôi đã viết một đặc điểm để sắp xếp các vòng lặp trong Scala, và mất nhiều thời gian để tạo một lớp mà tôi có thể kết hợp nó với việc ghi lại đặc điểm đó. Tại sao các quyết định thiết kế đã được thực hiện để không cho phép người dùng viết những câu như:Tại sao tất cả các bộ sưu tập bất biến cơ bản cuối cùng hoặc được niêm phong trong scala?
new List[Int] with SuperAwesomeTrait[Int]?
Bây giờ nếu tôi muốn làm điều này, tôi cần phải làm một số hack lạ như,
class StupidList extends LinearSeq {
val inner = List()
/* reimplement list methods by calling into inner */
}
và sau đó
new StupidList[Int] with SuperAwesomeTrait[Int].
Tuy nhiên, thực tế tương tự sẽ dẫn đến việc tôi không thể loại bỏ bất ổn của stdlib bằng lực gần như vô hạn. Nhược điểm, tuy nhiên trả về một danh sách mới để bạn không bị hỏng. – Joshua
Tại sao đây là vấn đề đối với 'Danh sách' nhiều hơn bất kỳ lớp nào khác? –
@Joshua, tôi không biết bạn đang nói về cái gì. Tôi đang sử dụng mô hình phù hợp để deconstruct một cái gì đó. Tôi không tạo ra gì cả. –