Kotlin 带前缀的星号是什么意思

Kotlin 带前缀的星号是什么意思,kotlin,Kotlin,我遇到了以下Kotlin代码: single(name = walletOkHttpTag) { createOkHttpClient { addHeaders( *mutableListOf<Pair<String, String>>().apply { add(HeaderKey.ACCEPT to APPLICATION_JSON_HEADER)

我遇到了以下Kotlin代码:

single(name = walletOkHttpTag) {
        createOkHttpClient {
            addHeaders(
                *mutableListOf<Pair<String, String>>().apply {
                    add(HeaderKey.ACCEPT to APPLICATION_JSON_HEADER)
                    if (isDebug || isBeta) {
                        add(HeaderKey.AUTHORIZATION to BASIC_AUTH_WALLET_STAGE_HEADER)
                    }
                }.toTypedArray()
            )
        }
    }
single(name=walletokhttpag){
createOkHttpClient{
添加标题(
*mutableListOf().apply{
添加(HeaderKey.ACCEPT到应用程序头)
if(isDebug | | isBeta){
添加(HeaderKey.AUTHORIZATION到基本\u AUTH\u WALLET\u STAGE\u标头)
}
}.toTypedArray()
)
}
}

在mutableListOf前面的星号*是什么意思?

这是扩展操作符,需要将现有数组传递给
vararg
函数

调用
vararg
-函数时,我们可以逐个传递参数,例如
asList(1,2,3)
,或者,如果我们已经有一个数组并希望将其内容传递给函数,我们可以使用spread操作符(在数组前面加
*
):

简化的示例来自:

输出:

[-1, 0, 1, 2, 3, 4]
如果没有spread运算符,数组本身将作为单个元素添加,从而生成一个包含4个元素的
列表

[-1, 0, [Ljava.lang.Integer;@31befd9f, 4]

来自53分Kotlin Tag的人的好问题可能是重复的
[-1, 0, [Ljava.lang.Integer;@31befd9f, 4]