Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有可能在Kotlin的列表中散布列表吗?_Kotlin - Fatal编程技术网

有可能在Kotlin的列表中散布列表吗?

有可能在Kotlin的列表中散布列表吗?,kotlin,Kotlin,可以在Kotlin中进行参数解包,类似于在Python中的解包方式吗?例如 >>> a = [1,2,3] >>> b = [*a,4,5,6] >>> b [1, 2, 3, 4, 5, 6] 我知道在科特林有以下可能: >>> listOf(1, 2, 3, *listOf(4,5,6).toTypedArray()) [1, 2, 3, 4, 5, 6] 感觉在科特林有更简单的方法。有什么想法吗?这些方法适用于阵列

可以在Kotlin中进行参数解包,类似于在Python中的解包方式吗?例如

>>> a = [1,2,3]
>>> b = [*a,4,5,6]
>>> b
[1, 2, 3, 4, 5, 6]
我知道在科特林有以下可能:

>>> listOf(1, 2, 3, *listOf(4,5,6).toTypedArray())
[1, 2, 3, 4, 5, 6]
感觉在科特林有更简单的方法。有什么想法吗?

这些方法适用于阵列,因此您可以执行以下操作:

listOf(1, 2, 3, *(arrayOf(4, 5, 6)))

python代码可以用以下Kotlin代码表示。正如zsmb13所回答的,操作员
*
也可在Kotlin中使用:

fun main(args: Array<String>) {
    val a = arrayOf(1, 2, 3)
    val b = arrayOf(*a, 4, 5, 6)
    println(b.contentToString())
}
fun main(args:Array){
val a=数组(1,2,3)
val b=阵列(*a,4,5,6)
println(b.contentToString())
}
文件告诉我们:

调用vararg函数时,可以一个接一个地传递参数,例如asList(1、2、3),或者,如果我们已经有一个数组并希望将其内容传递给函数,则使用扩展运算符(在数组前面加*)


也与此相关。

如果
a=arrayOf(4,5,6)
,那么
b=listOf(1,2,3,*a)
工作正常;例如,请参阅其他类型的集合没有实现spread运算符的任何原因?如果您只是添加到开始或结束,您也可以只添加列表:
listOf(1,2,3)+listOf(4,5,6)
是的,这在Kotlin中是一个不幸的限制。例如,您可以使用Scala中的等效运算符扩展列表或其他内容。