将数组传递给varargs参数

Amm*_*mar 14 kotlin

如果我有一个函数头像:

fun addAttributes(vararg attributes: String) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想attributes在这里传递:

val atts = arrayOf("1", "2", "3")
addAttributes(atts)
Run Code Online (Sandbox Code Playgroud)

它给出了关于不兼容类型的编译错误.我该怎么办?

Amm*_*mar 26

我使用了扩展运算符,它基本上扩展元素以使它们兼容varargs.

addAttributes(*atts)
Run Code Online (Sandbox Code Playgroud)

这很有效.


Ali*_*waz 5

如果你有一个数组,那么将其设置为:

addAttributes(*arrayVar)
Run Code Online (Sandbox Code Playgroud)

如果您有一个列表,那么在这种情况下:

addAttributes(*listVar.toTypedArray())
Run Code Online (Sandbox Code Playgroud)