gpt4 book ai didi

scala - 在 asInstanceOf 中引用嵌套类

转载 作者:行者123 更新时间:2023-12-01 12:36:26 27 4
gpt4 key购买 nike

我收到 not found: value Duck

    class Type
class Value(val t: Type)
class Duck extends Type {
class Val extends Value(this)
}
def f(individual: Value) = individual.t match {
// case t: Duck => individual.asInstanceOf[Value] //this is ok
case t: Duck => individual.asInstanceOf[Duck.Val] //but I need this
}

在这里添加一些细节以提高问题质量。正式的质量检查不会出错。如果更多的字母可以改善您的问题,那一定是这样。现在,我的问题好多了,可以发布了。

最佳答案

你可能正在寻找这个:

def f(individual: Value) = individual.t match {
case t: Duck => individual.asInstanceOf[t.Val]
}

或这个:
def f(individual: Value) = individual.t match {
case t: Duck => individual.asInstanceOf[Duck#Val]
}

在 Scala 中,为外部类的每个实例定义了一个内部类型。所以你要找的类型是 t.Val ,因为您必须提供外部类实例才能完全了解内部类类型。如果你想获得所有这些内部类型的父类(super class)型,你可以做 Outer#Inner .

关于scala - 在 asInstanceOf 中引用嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29286564/

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