kotlin: any/none/all函数
一,功能
any
如果至少有一个元素匹配给定谓词,那么 any() 返回 true。
none
如果没有元素与给定谓词匹配,那么 none() 返回 true。
all
如果所有元素都匹配给定谓词,那么 all() 返回 true。
请注意,在一个空集合上使用任何有效的谓词去调用 all() 都会返回 true 。这种行为在逻辑上被称为 vacuous truth。
谓词 定义
接受一个集合元素并且返回布尔值的 lambda 表达式, 其返回值含义:true 说明给定元素与谓词匹配,false 则表示不匹配
二,例子:any()
代码:
//处理按钮点击事件
binding.button2.setOnClickListener {
//判断集合元素,如果集合为空,返回false, 集合中存有一个或多个元素时返回true
val mList1 = arrayListOf(1, 2, 3, 4, 5)
val mList2: ArrayList<Int> = arrayListOf()
println(mList1.any()) //true
println(mList2.any()) //false
//判断集合元素,如果集合为空或者没有符号条件的元素返回false,
// 集合中存有一个或多个元素符合条件时返回true
println(mList1.any { it == 2 }) //true
println(mList2.any { it == 3 }) //false
}
运行结果:
三,例子:none()
代码:
//处理按钮点击事件:
binding.button3.setOnClickListener {
//如果集合中没有元素,则none()返回true,否则返回false
val mList1 = arrayListOf(1, 2, 3, 4, 5)
val mList2: ArrayList<Int> = arrayListOf()
println(mList1.none()) //false
println(mList2.none()) //true
//存在符合条件的元素时,返回false,否则返回true
println(mList1.none { it == 2 }) //false
println(mList2.none { it == 33 }) //true
}
运行结果:
四,例子:all()
代码:
//处理按钮点击事件
binding.button4.setOnClickListener {
//当且仅当该集合中所有元素都满足条件时,返回true;否则都返回false。
val mList1 = arrayListOf(0, 2, 4, 6, 8)
println(mList1.all { it % 2 == 0 }) //true
println(mList1.all { it % 2 == 1 }) //false
val mList2 = arrayListOf(0, 1, 2, 3, 4)
println(mList2.all { it % 2 == 0 }) //false
println(mList2.all { it < 5 }) //true
}
运行结果: