Kotlin展开运算符

Kotlin展开运算符

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

fun main() {
    val list: Array = 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  listOf(vararg elements: T): List cannot be applied to (String,List)
>>>Type mismatch: inferred type is List but Array was expected

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

你可能感兴趣的:(Kotlin展开运算符)