我创建了自己的traits框架和扩展traits的类。所有类的父类都是名为“Contract”的trait。“Combinator”和“ElementaryContract”是Contract的两个直接子类。
def disintegrateContract[T](element: T): Elem =
{
element match
{
case com <: Combinator => matchCombinator(com)
case e <:ElementaryContract =>matchElementaryContract(e)
}
}
字符串
我想创建一个match类,它可以识别传递的'Contract'是'Combinator'还是'ElementaryContract'的子类型,然后将其传递给其他函数。这是我得到的编译错误:
'=>' expected but '<:' found
型
可能它不识别子类型操作符。我如何才能使这种情况发生?
1条答案
按热度按时间rkttyhzu1#
如果理解正确,通常的模式匹配应该没问题--如果Bar扩展了Foo,它就是Foo(加上其他东西):
字符串
为了准确地了解您的情况,应该有SuperA和SuperB将扩展的Super,但它不会改变任何东西。