Sau khi đi qua một vài ví dụ, tôi phải nói, tôi không hiểu những gì các F-Bounded đa hình mang lại.scala f-bounded loại giải thích
Để sử dụng ví dụ từ trường scala (https://twitter.github.io/scala_school/advanced-types.html#fbounded)
Họ giải thích rằng họ cần một số loại F-Bounded để các lớp con có thể trả lại subtype. Vì vậy, họ làm điều gì đó như thế này:
trait Container[A <: Container[A]] extends Ordered[A]
class MyContainer extends Container[MyContainer] {
def compare(that: MyContainer) = 0
}
Nhưng tôi không thấy lợi ích của việc sử dụng loại này loại là những gì khi bạn có thể sử dụng một cái gì đó như thế này:
trait Container[A] extends Ordered[A]
class MyContainer extends Container[MyContainer] {
def compare(other: MyContainer) = 0
}
Bất kỳ lời giải thích rất hoan nghênh
Cảm ơn
Tôi nghĩ rằng tôi có điểm của Nishan và đối với tôi điều đó có ý nghĩa, nhưng phần bạn đang nói đến, là phần làm tôi bối rối. Từ ví dụ của bạn, bạn có thể định nghĩa A như thế: trait Container [A] và nhận được kết quả tương tự. Bạn sẽ không phải ghi đè lên chức năng cặp trong sublcass –
Ồ, đừng bận tâm, tôi đã hiểu nó. Nếu bạn có đặc điểm Container [A], bạn không thể bảo đảm rằng từ trong lớp con, kiểu trả về A là loại Container. Cảm ơn rất nhiều –