Ayfri
08/06/2021, 3:57 PMYoussef Shoaib [MOD]
08/06/2021, 4:22 PMArray<out T>
is equivalent to using vararg param: T
, and then you can also provide a convenient extension function like this: (playground)
typealias VarargFun<E, R> = (items: Array<out E>) -> R
operator fun <E, R> VarargFun<E, R>.invoke(vararg items: E): R = this(items)
fun testVararg(vararg test: Any?) = listOf(*test)
fun main(){
var test: VarargFun<Any?, List<Any?>> = ::testVararg
println(test("hello", "world"))
}
Ayfri
08/06/2021, 4:30 PMturansky
08/06/2021, 5:56 PM