将逻辑与应用于布尔值列表
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
}
考虑一个带有布尔值的可变列表,
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
}