将逻辑AND应用于布尔值列表

时间:2019-11-22 12:46:51

标签: kotlin fold

考虑一个具有布尔值的可变列表,

MutableList{true, false, false}

使用Kotlin折叠对列表中的所有值进行逻辑与后,如何返回布尔值?

4 个答案:

答案 0 :(得分:5)

您提到过,这是fold运算符的常见情况。

val list = mutableListOf(true, false, false)

val result = list.fold(initial = true) { accumulator, nextItem ->
    accumulator && nextItem
}

或者,您也可以使用以下方法检查列表是否包含一个错误:

val result = (false !in list)

答案 1 :(得分:1)

val list = mutableListOf(true, false, false)

val allTrue = list.all { it }

答案 2 :(得分:0)

假设列表不为空,如果列表中的任何一项为false,则结果为false

val result = !list.any { !it }

答案 3 :(得分:0)

如果您使用的是 Kotlin 1.5,则可以使用 none

fun main() {
    val listWithFalse = mutableListOf(true, false, false, true)
    val listAllTrue = mutableListOf(true, true, true, true)

    println(listWithFalse.none { !it }) // false
    println(listAllTrue.none { !it }) // true
}