Tôi đang tuyệt vọng cố gắng giải quyết như sau:một phần áp dụng các tham số kiểu
trait Access[Res[_]] { def access[C]: Res[C] }
trait CList[C1, A] extends Access[CList[_, A]] // ?!
def test[C1, C2, A](c: CList[C1, A]): CList[C2, A] = c.access[C2]
scalac chỉ nói: "error: illegal cyclic reference involving trait CList"
. làm thế nào tôi có thể làm cho biên dịch này?
Cảm ơn, trông tốt hơn một chút. Ngoài ra, trong trường hợp thực sự của tôi, các tham số kiểu của CList có giới hạn trên, có một đặc điểm riêng biệt Partial2 không thực sự hữu ích (tôi sẽ cần phải thêm các tham số kiểu cho các giới hạn, vv) –
Ngoài ra nếu loại lambda được sử dụng thường xuyên trong mã của bạn, xem xét plugin trình biên dịch sau: https://github.com/non/kind-projector –