gpt4 book ai didi

scala - Scala 中的默认类型参数

转载 作者:行者123 更新时间:2023-12-04 00:44:26 25 4
gpt4 key购买 nike

我有这个特点

trait Extractor extends Mapping[Node]

将其更改为采用具有默认值的类型参数的最简单方法是什么

trait Extractor[T] extends Mapping[**T if given else Node**] 

其他类似的问题涉及一些关于类型上限和下限的无关细节

最佳答案

我认为您希望重载 Extractor 使其成为 ** -> * 类型。通常最好避免重载,所以我建议,

scala> trait Mapping[T]
defined trait Mapping

scala> trait Node
defined trait Node

scala> trait Extractor[T] extends Mapping[T]
defined trait Extractor

scala> type NodeExtractor = Extractor[Node]
defined type alias NodeExtractor

scala> val ne = new NodeExtractor {}
ne: NodeExtractor = $anon$1@1ebdcc9a

如果 Extractor[Node] 是常见情况,那么您可以针对它进行优化并执行类似这样的操作,

scala> trait ExtractorT[T] extends Mapping[T]
defined trait ExtractorT

scala> type Extractor = ExtractorT[Node]
defined type alias Extractor

scala> val ne = new Extractor {}
ne: Extractor = $anon$1@3d70fe39

关于scala - Scala 中的默认类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038392/

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