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

Illegal Start of Simple Expression: Option Type and Ellipsis

Scala 新手,刚刚开始 scala.Option 作弊 Sheet。但是,此代码在 sbt 控制台中抛出错误。

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

错误是

error: illegal start of simple expression

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

... 不是有效的 Scala 表达式。如果你想要一个带有 "unknown" 实现的函数,你可以使用 ???:

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
}