gpt4 book ai didi

Scala - 找到所需的单元 : play. api.mvc.SimpleResult

转载 作者:行者123 更新时间:2023-12-01 09:58:19 25 4
gpt4 key购买 nike

我在这里真的很困惑,我可能遗漏了一些明显的东西,所以如果有人能指出我正确的方向,那就太好了。

我有以下函数返回 SimpleResult 类型的 future ,但它有一个 unit 。我不确定为什么会这样说,因为我正在映射 futureList 结果

  def find(key: String, value: String) = Future[SimpleResult] {

val cursor: Cursor[JsObject] = coll.
find(Json.obj(key -> value)).
cursor[JsObject]

val futureList: Future[List[JsObject]] = cursor.collect[List]()

val futureResult: Future[SimpleResult] = futureList.map { item =>

if(item.isEmpty) {

Ok(JsArray()).as(JSON)
}
else
Ok(Json.toJson(item))
}
}

编辑

我根据 Marth 给出的建议将其更改为以下内容

  def find(key: String, value: String) = Future[SimpleResult] {

val cursor: Cursor[JsObject] = coll.
find(Json.obj(key -> value)).
cursor[JsObject]

val futureList: Future[List[JsObject]] = cursor.collect[List]()

futureList.map { item => Ok(Json.toJson(item)) }

}

Eclipse 警告以下内容

类型不匹配;发现:scala.concurrent.Future[play.api.mvc.SimpleResult] 需要: Play .api.mvc.SimpleResult

尽管该函数旨在返回一个 scala.concurrent.Future[play.api.mvc.SimpleResult]

最佳答案

这是一个语法错误。

def find(key: String, value: String): Future[SimpleResult] = {

val cursor: Cursor[JsObject] = coll.
find(Json.obj(key -> value)).
cursor[JsObject]

val futureList: Future[List[JsObject]] = cursor.collect[List]()

futureList.map { item => Ok(Json.toJson(item)) }

}

注意第一行中的“:”和“=”符号。如果没有冒号,您实际上只是在调用 Future.apply[SimpleResult],它接受一个参数:一个应该返回 SimpleResult 的函数。这就是类型不匹配的原因:您在 Future 的主体内返回 Future。

关于Scala - 找到所需的单元 : play. api.mvc.SimpleResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com