gpt4 book ai didi

Scala - 如何强制 Traits 的特定顺序

转载 作者:行者123 更新时间:2023-12-02 17:29:25 25 4
gpt4 key购买 nike

虽然特征的顺序在混合过程中出现,但我如何以特定的方式强制它们的顺序。例如我有这个:

val t = new Wink with Dash with Right with Left

我想设置条件,例如if Right NOT Left并假设Dash COMES FIRST THEN Right OR Left

最佳答案

实现对混合特征方式的此类限制的一种方法如下:

trait Dash[T <: Dash[T]]
trait Right extends Dash[Right]
trait Left extends Dash[Left]

val t = new Wink with Dash[Right]

这边,[T <: Dash[T]]迫使我们立即提供右或左特征。 (根据您的要求右左)

另一方面,由于扩展extends Dash[Right] ,如果不使用 Dash,则无法混合右或左特征。 (达世币在您的要求中优先)

听起来好像您正在检查某些条件以便在“右”或“左”之间做出决定。这可以这样做:

val t = if (p) new Wink with Dash[Right] else new Wink with Dash[Left]

关于Scala - 如何强制 Traits 的特定顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637353/

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