![](/img/trans.png)
[英]Scala missing parameter type for expanded function The argument types of an anonymous function must be fully known. (SLS 8.5)
[英]scala: missing parameter type for expanded function: the argument types of an anonymous function must be fully known
我是scala的新手,我完全不知道我的代码有什么问题:
我有一些Future
可能会引发异常:
var clean: Future[Boolean];
但是,当我尝试绘制地图时
clean.map( b => {
case true => Ok("success")
case false => Ok("failed")
}).recover {
case t => Ok("error: " + t)
}
我在标题中得到了指定的编译错误。我完全不知道代码的哪一部分和/或哪一部分导致了该错误。.我用谷歌搜索,但很难找到任何线索,因为scala语法非常灵活,因此变化很多在互联网上,但我得到的错误是非常令人误解的...
任何帮助将不胜感激...
按照编写的方式传递给.map
的函数应该接受布尔参数b
,并返回另一个函数(花括号中的内容)。 编译器无法猜测该内部函数的类型,因此它抱怨参数类型未知。
那实际上是一件好事,因为那根本不是您真正想要写的。
只需删除整个业务(b => ...)
:
clean.map {
case true => Ok("success")
case false => Ok("failed")
}.recover {
case t => Ok("error: " + t)
}
另外,使clean
val
而不是var
。 可变变量不是一个好主意。 99%的时间,在scala中编写代码,您不需要它们,因此,我建议您假装var
关键字暂时不存在,直到您学习足够的语言以能够识别实际需要可变状态的情况为1%。
我想你打算:
clean.map( b => b match {
case true => Ok("success")
case false => Ok("failed")
}).recover {
case t => Ok("error: " + t)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.