我正在尝试理解此代码的行为:
def getListsByLC(lcId: Int): Action[AnyContent] = Action.async {
listRepo.getListsByLC(lcId).flatMap { lists =>
val newLists: Seq[Future[Seq[List]]] = lists.map { list =>
itemRepo.getItemsByList(list.id).map { items =>
list.items.get :+ items
}
}
Future.sequence(newLists).map(_.flatten).map { lists =>
Ok(Json.obj("lists" -> lists))
}
}
}
我有seq
个列表,List
内还有seq
个Item
。我想将items
添加到每个对应的list
。我的编译器以某种方式告诉我lists.map { ... }
的返回值为Equals
。我找不到有关此行为的任何文档。我究竟做错了什么?我错过了什么吗?提前谢谢!
答案 0 :(得分:1)
Equals
是一个Scala特征,定义为“包含相等操作的特征”。这是代码中的意外行为。这可能意味着您的代码未返回预期的返回类型。我强烈怀疑它与:+
函数有关。
在此处阅读有关列表连接的更多信息:https://alvinalexander.com/scala/how-merge-scala-lists-concatenate