【发布时间】:2021-09-13 22:37:49
【问题描述】:
我有一个元素列表,例如:
val myList = listOf(1,2,3,4,5,6,7)
列表可以是任何类型,这只是一个示例。 现在我有一个任意长度的谓词列表:
val myPredicates = listOf({myInt: Int -> myInt > 1}, {myInt: Int -> myInt%2 == 0})
如何通过按列表顺序将所有谓词应用于myList 来过滤列表并将结果放入新列表中?我觉得答案就在使用reduce 或fold 运算符的某个地方,但答案却在我面前。
【问题讨论】:
-
明确一点:您只想保留与所有谓词匹配的项目?
-
正确。就像这样链接谓词:
myList.filter(predicate1).filter(predicate2),但你不知道谓词的数量提前。
标签: kotlin collections filtering