简单表达的非法开始:选项类型和省略号

时间:2015-05-25 22:13:29

标签: scala pattern-matching ellipsis

Scala的新手,刚开始使用scala.Option Cheat Sheet。但是,此代码在sbt控制台中引发错误。

def option[A, X](o: Option[A])(none: => X, some: => A => X): X = ...

错误是

  

错误:非法启动简单表达

向上箭头指向省略号。修复看起来很简单,但作为一个新手,它目前躲过我

1 个答案:

答案 0 :(得分:2)

...不是有效的Scala表达式。如果您想要一个具有“未知”实现的函数,可以使用???

def option[A, X](o: Option[A])(none: => X, some: => A => X): X = ???

此函数的目标显然是将函数作为参数并根据选项的内容应用nonesome。您可以使用模式匹配来实现它:

def option[A, X](o: Option[A])(none: => X, some: => A => X): X = o match {
  case Some(a) => some(a)
  case None => none
}