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

Apply logical AND to a list of boolean values

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

MutableList{true, false, false}

如何在使用 Kotlin fold 对列表中的所有值执行逻辑与后 return 布尔值?

您提到,这是折叠运算符的常见情况。

val list = mutableListOf(true, false, false)

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

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

val result = (false !in list)
val list = mutableListOf(true, false, false)

val allTrue = list.all { it }

假设列表不为空,如果列表中的任何一项是 false 那么结果是 false:

val result = !list.any { !it }

如果您使用的是 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
}