Scala error : unbound placeholder parameter and pattern matching condition
Scala error : unbound placeholder parameter and pattern matching condition
我正在尝试结合模式匹配和条件,但是这段代码(这是一个 Samza 任务):
override def process(incomingMessageEnvelope: IncomingMessageEnvelope, messageCollector: MessageCollector, taskCoordinator: TaskCoordinator): Unit = {
val event = (incomingMessageEnvelope getMessage).asInstanceOf[Map[String, Date]]
val symbol = (event get "symbol").asInstanceOf[String]
val eventDate = (event get "date").asInstanceOf[Date]
(store get symbol) match {
case x: java.util.Date if x.equals(eventDate) || x.after(eventDate) => _
case _ => {
this.store.put(symbol, eventDate)
}
}
}
returns 这个错误:
Error:(30, 38) unbound placeholder parameter
case x if isGreaterOf(x, x) => _
^
你知道错误吗?
谢谢
此致
詹卢卡
异常与您的代码不匹配,但有一行会引发相同的错误:
case x: java.util.Date if x.equals(eventDate) || x.after(eventDate) => _
因为 _
是一个占位符,可以在模式中用于匹配和 return 类型。它不能用于指示 Unit
return 值。要 return 一个 Unit
值而不执行代码,你可以只做
case x: java.util.Date if x.equals(eventDate) || x.after(eventDate) => ()
相反。
我正在尝试结合模式匹配和条件,但是这段代码(这是一个 Samza 任务):
override def process(incomingMessageEnvelope: IncomingMessageEnvelope, messageCollector: MessageCollector, taskCoordinator: TaskCoordinator): Unit = {
val event = (incomingMessageEnvelope getMessage).asInstanceOf[Map[String, Date]]
val symbol = (event get "symbol").asInstanceOf[String]
val eventDate = (event get "date").asInstanceOf[Date]
(store get symbol) match {
case x: java.util.Date if x.equals(eventDate) || x.after(eventDate) => _
case _ => {
this.store.put(symbol, eventDate)
}
}
}
returns 这个错误:
Error:(30, 38) unbound placeholder parameter
case x if isGreaterOf(x, x) => _
^
你知道错误吗?
谢谢
此致
詹卢卡
异常与您的代码不匹配,但有一行会引发相同的错误:
case x: java.util.Date if x.equals(eventDate) || x.after(eventDate) => _
因为 _
是一个占位符,可以在模式中用于匹配和 return 类型。它不能用于指示 Unit
return 值。要 return 一个 Unit
值而不执行代码,你可以只做
case x: java.util.Date if x.equals(eventDate) || x.after(eventDate) => ()
相反。