Như tiêu đề của câu hỏi này cho thấy: câu hỏi của tôi là nhiều hơn về hình thức (quy ước thành ngữ) hơn chức năng. Đặt gọn gàng:Scala thành ngữ: Sự khác biệt ngữ nghĩa giữa <Collection> Thích và <Collection> Các loại?
Sự khác biệt ngữ nghĩa giữa
MyCollectionLike
vàMyCollection
là gì?
Như ví dụ: sự khác biệt giữa StringLike
và String
hoặc MapLike
và Map
là gì. Nhìn kỹ vào tài liệu API Scala, tôi có thể nói rằng XLike
thường là loại siêu của X
. Nhưng, ngoài ra, tôi không rõ ràng về sự khác biệt ngữ nghĩa giữa các lớp trừu tượng này.
Trong thực tế, nếu tôi đang tạo một lớp/đặc điểm mới, hiểu sự khác biệt này sẽ hữu ích khi tôi chọn tên cho lớp đã nói.
vấn đề cụ thể của tôi, nơi này đã đưa ra như sau:
Tôi muốn tạo ra những đặc điểm:
SurjectiveMap[K, T]
có thể được trộn lẫn trong với một trong haiMap[K, Set[T]]
hoặcMapLike[K, SetLike[T]]
. Do tôi không biết sự khác biệt ngữ nghĩa giữa*Like
và*
, tôi không chắc chắn nên làm gì với.