0
我定义了一个阶枚举匹配任何枚举值:斯卡拉在case语句
object SalesChannelType extends scala.Enumeration {
type SalesChannelType = Value
val SALES_CHANNEL_1, SALES_CHANNEL_2 = Value
}
class SalesChannelType extends TypeReference[SalesChannelType.type]
现在我想编写在一个单一的情况下匹配任何枚举值匹配的语句,是这样的:
SalesChannelType.SALES_CHANNEL_1 match {
case SalesChannelType => println(_)
case _ => println("specified sales channel does not exist")
这个想法是为第一个case语句打印销售渠道,如果它在枚举中定义的话。否则,应该调用第二个case语句。目前上面的代码不会与错误编译Pattern type is incompatible with expected type, found SalesChannel.type required SalesChannel.Value
如果您的程序输入得体,没有不存在的销售渠道可以达到该模式匹配。或者我错过了什么? –
是的,你说得很好,这是一个不必要的匹配语句。仍然想知道它是否可能? – novon
你可以制作一个[自定义模式/提取器](http://docs.scala-lang.org/tutorials/tour/extractor-objects.html)。 –