是否可以使用<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
语法简化以下match
语句?
@
其中foo match {
case f: Foo => y(f)
case f if forceY => y(f)
case _ => x
}
是forceY
。
我尝试了以下操作,但遇到了编译错误,并且编译器解释的语法确实有问题。也许这无法表达?
boolean
答案 0 :(得分:6)
foo match {
case f if f.isInstanceOf[Foo] || forceY => y(f)
case _ => x
}
您不能专门使用@
,因为语法f: Foo
只能出现在case
的匹配部分中,而不能出现在if
之后的条件中。
原始版本也不错。如果您实际在右侧拥有的内容比仅y
长,则可以显式定义y
并保留这三种情况,因为它们看起来不错。