kotlin 中 any, all , none

2024-01-02 15:36:11

?any

如果至少有一个元素匹配给定谓词,那么 any() 返回 true。

all

?如果没有元素与给定谓词匹配,那么 none() 返回 true。

none

?如果所有元素都匹配给定谓词,那么 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类层级结构的顶层类似

参考地址

文章来源:https://blog.csdn.net/qq_33210042/article/details/135339650
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。