Kotlin将List转换为vararg

时间:2018-07-03 19:15:14

标签: list kotlin variadic-functions

我有List<UnitWithComponents>类型的输入数据

class UnitWithComponents {
    var unit: Unit? = null
    var components: List<Component> = ArrayList()
}

我想将数据转换为vararg的{​​{1}}

当前我正在做Unit。有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

fun foo(vararg strings: String) { /*...*/ }

使用

foo(strings = arrayOf("a", "b", "c"))

val list: MutableList<String> = listOf("a", "b", "c") as MutableList<String>
foo(strings = list.map { it }.toTypedArray())

<块引用>

非 Kotlin 函数 (*.java) 不允许使用命名参数

因此,在这种情况下,您应该替换:

来自:strings = list.map { it }.toTypedArray()

至:*list.map { it }.toTypedArray()

GL

Source

答案 1 :(得分:2)

否,这是正确的方法(假设对于列表中的某些元素,当function Increase_Decrease() { var w = document.getElementById("img").width; var h = document.getElementById("img").height; if (w <= 500 && h <= 500){ var w = document.getElementById("img").width += 50; var h = document.getElementById("img").height += 50; } else { var w = document.getElementById("img").width -= 50; var h = document.getElementById("img").height -= 50; } } it.unit时,您想引发异常)。