gpt4 book ai didi

Scala将递归有界类型参数(F-bounded)转换为类型成员

转载 作者:行者123 更新时间:2023-12-04 01:54:42 25 4
gpt4 key购买 nike

我将如何转换:

trait Foo[A <: Foo[A]]

类型成员?

即,我想要以下内容:
trait Foo {
type A <: Foo {type A = ???}
}

但我遇到了困难,因为名称 A 已经在类型细化中使用了。这个问题是类似的(并产生于): F-bounded quantification through type member instead of type parameter?

最佳答案

使用自类型:

scala> trait Foo { self => type A <: Foo {type A = self.A}}
defined trait Foo

scala> class Bar extends Foo { type A = Bar }
defined class Bar

scala> class Bar extends Foo { type A = Int }
<console>:10: error: overriding type A in trait Foo with bounds <: Foo{type A = Bar.this.A};
type A has incompatible type
class Bar extends Foo { type A = Int }
^

关于Scala将递归有界类型参数(F-bounded)转换为类型成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244260/

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