新来的Scala和刚开始scala.Option备忘单。但是,这段代码在sbt控制台中抛出一个错误。简单表达式的非法开始:选项类型和省略号
def option[A, X](o: Option[A])(none: => X, some: => A => X): X = ...
该错误是
error: illegal start of simple expression
向上箭头指向的省略号。修复似乎很简单,但作为一个新手,它目前没有我
新来的Scala和刚开始scala.Option备忘单。但是,这段代码在sbt控制台中抛出一个错误。简单表达式的非法开始:选项类型和省略号
def option[A, X](o: Option[A])(none: => X, some: => A => X): X = ...
该错误是
error: illegal start of simple expression
向上箭头指向的省略号。修复似乎很简单,但作为一个新手,它目前没有我
...
是不是一个有效的Scala表达式。如果你想用一个“未知”的实现的功能,你可以使用???
:
def option[A, X](o: Option[A])(none: => X, some: => A => X): X = ???
此功能的目的显然是把一个函数作为参数,要么none
或some
根据选项的内容应用。您可以使用模式匹配来实现它:
def option[A, X](o: Option[A])(none: => X, some: => A => X): X = o match {
case Some(a) => some(a)
case None => none
}
或使用现有的'.fold':'o.fold(none)(some)'。顺便说一句,我会写'A => B'而不是'=> A => B'。 – cchantep
'= ...'不是有效的函数声明。要么你实现你使用'???'的函数体来使它'尚未实现'(编译,但在运行时抛出异常)。 – cchantep
谢谢。 '''做了诀窍。另外,仔细查看示例之后,似乎作者没有参加一些要运行的代码。 – user3465296