美文网首页
【kotlin】orEmpty 函数(附:合并两个 List 的

【kotlin】orEmpty 函数(附:合并两个 List 的

作者: littlefogcat | 来源:发表于2023-03-08 19:42 被阅读0次

    OrEmpty 函数

    orEmptyCollection<T>? 类型和 List<T>? 类型的扩展函数,看看它的定义:

    public inline fun <T> Collection<T>?.orEmpty(): Collection<T> = this ?: emptyList()
    
    public inline fun <T> List<T>?.orEmpty(): List<T> = this ?: emptyList()
    

    非常简单,该函数会判断该对象是否为空,以此决定返回原始对象或一个 emptyList。这在需要一个 NonNull 对象的时候比较有用。

    合并两个List

    在kotlin中,合并两个 List 可以直接使用加号连接:

        val list1 = arrayListOf(1, 2, 3)
        val list2 = arrayListOf("4", "5", "6")
        val list3 = list1 + list2
        println(list3)
    

    [1, 2, 3, 4, 5, 6]

    而对于 Nullable List,如:

        val list1: ArrayList<Int>? = arrayListOf(1, 2, 3)
        val list2: ArrayList<String>? = arrayListOf("4", "5", "6")
        val list3 = list1 + list2
        println(list3)
    

    则会导致编译错误。

    这时候,可以使用 orEmpty 函数来合并。

        val list1: ArrayList<Int>? = arrayListOf(1, 2, 3)
        val list2: ArrayList<String>? = arrayListOf("4", "5", "6")
        val list3 = list1.orEmpty() + list2.orEmpty()
        println(list3)
    

    [1, 2, 3, 4, 5, 6]

    非常简单。

    相关文章

      网友评论

          本文标题:【kotlin】orEmpty 函数(附:合并两个 List 的

          本文链接:https://www.haomeiwen.com/subject/sjgvldtx.html