5
Tôi đang cố gắng làm cho Scala tìm đúng loại cho loại phụ thuộc vào đường dẫn đến từ loại đơn.Hiển thị loại phụ thuộc vào đường dẫn đến từ loại singleton
Thứ nhất, đây là container loại ví dụ, và một ví dụ:
trait Container {
type X
def get(): X
}
val container = new Container {
type X = String
def get(): X = ""
}
tôi có thể thấy String trong nỗ lực đầu tiên này (vì vậy tôi đã có một kịch bản làm việc):
class WithTypeParam[C <: Container](val c: C) {
def getFromContainer(): c.X = c.get()
}
val withTypeParam = new WithTypeParam[container.type](container)
// good, I see the String!
val foo: String = withTypeParam.getFromContainer()
Nhưng khi không có tham số kiểu, điều này không hoạt động nữa.
class NoTypeParam(val c: Container) {
def getFromContainer(): c.X = c.get()
}
val noTypeParam = new NoTypeParam(container)
// this does *not* compile
val bar: String = noTypeParam.getFromContainer()
Có ai biết tại sao tham số kiểu là cần thiết không?