如果至少有一个元素匹配给定谓词,那么 any() 返回 true。
?如果没有元素与给定谓词匹配,那么 none() 返回 true。
?如果所有元素都匹配给定谓词,那么 all() 返回 true。 请注意,在一个空集合上使用任何有效的谓词去调用 all() 都会返回 true 。这种行为在逻辑上被称为 vacuous truth。
接受一个集合元素并且返回布尔值的 lambda 表达式, 其返回值含义:true
说明给定元素与谓词匹配,false
则表示不匹配
val numbers = listOf("one", "two", "three", "four")
// 集合中的元素有一个是以e结尾的就满足
// 打印结果true
Log.d("=====any", numbers.any { it.endsWith("e") }.toString())
// 集合中所有的元素是以e结尾的就满足
// 打印结果false
Log.d("=====all", numbers.all { it.endsWith("e") }.toString())
// 集合中没有一个元素是以e结尾的才满足
// 打印结果false
Log.d("=====none", numbers.none { it.endsWith("e") }.toString())
any() 和 none() 也可以不带谓词使用:在这种情况下它们只是用来检查集合是否为空。 如果集合中有元素,any() 返回 true,否则返回 false;none() 则相反。
val numbers = listOf("one", "two", "three", "four")
val empty = emptyList<String>();
Log.d("=======numbers.any", numbers.any().toString())
Log.d("=======empty.any", empty.any().toString())
Log.d("=======numbers.none", numbers.none().toString())
Log.d("=======empty.none", empty.none().toString())
注意:any作为类的时候,Any类型是 Kotlin 中所有非空类型的超类 类似java中Object作为Java类层级结构的顶层类似