Kotlin展开运算符

Kotlin展开运算符

当你需要传递一个数组参数时,在Kotlin中需要你解包数组,以便每个数组元素在函数中能作为单独的参数来调用。我们使用*号来展开这个数组。

fun main() {
    val list: Array<String> = arrayOf("two","three","four")
    val list2 = listOf("one",*list);
    println(list2)
}

>>>[one, two, three, four]

下面这为错误的代码:

fun main() {
    val list = listOf("two","three","four")
    val list2 = listOf("one",*list);
    println(list2)
}

>>>Type inference failed: fun <T> listOf(vararg elements: T): List<T> cannot be applied to (String,List<String>)
>>>Type mismatch: inferred type is List<String> but Array<out String> was expected

错误说了list为一个可变数组长度,他参数上使用vararg修饰,代表一个可变的列表,说明了展开运算符只能展开数组数据,不能展开一个可变长的列表。
可以理解为展开运算符遍历了一遍该数组。

    原文作者:Android_葱
    原文地址: https://blog.csdn.net/weixin_39936201/article/details/84582243
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞