【发布时间】:2014-04-06 03:12:20
【问题描述】:
我有一个 Seq[文档]。
Document 有一个 val 字段,它是一个字符串,可以这样做
d.typ ---> which will be a String
我想对 Seq 进行映射和过滤,以生成仅包含 typ 字段等于特定字符串的文档的新 Seq。到目前为止,我有这个:
def getNewProducts(docs: Seq[Document]):Seq[Document] = {
docs.map(_.typ == "new-product")
}
我知道我需要为 map 函数提供一个谓词过滤器,但不知道如何做。万分感谢。
【问题讨论】:
-
如果您确实需要
map和filter,那么collect就是您想要的。它需要一个PartialFunction(通常是匹配块状的部分函数文字)。过滤基于定义了偏函数的输入,映射基于这些情况的结果。 -
看起来您只想过滤而不是映射。映射意味着您将集合中的每个元素转换为不同的东西,因此您获得了转换后元素的集合。
标签: scala