gpt4 book ai didi

scala - 理解抽象类型

转载 作者:行者123 更新时间:2023-12-02 04:59:19 26 4
gpt4 key购买 nike

我有以下类(class):

abstract class Base {
type T
def myMethod: T
}

abstract class B extends Base {
type T <: String
}

abstract class C extends Base {
type T <: Int
}

现在,如果我这样写:

class Test{
self: B with C =>
// do sth with myMethod
}

myMethod 将产生 Int 类型的结果。另一方面,如果我这样写:

class Test{
self: C with B =>
// do sth with myMethod
}

我将得到 String 类型。谁能解释一下?

最佳答案

是的,我可以!这是a bug !根据 Martin Odersky 本人的说法,这是“Scala 类型系统中的一个基本问题”的结果(请参阅关于该问题的评论以进行讨论,以及今天早上早些时候的 this question)。

关于scala - 理解抽象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18332590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com