Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.38 KB

Function with vararg parameter.md

File metadata and controls

37 lines (27 loc) · 1.38 KB

Function with vararg parameter

Статус Ожидание Реальность
🚫 vararg смапился в Swift-овый variardic и используется аналогично Не работает так, как ожидается

Пояснения

Опишем функцию, использующую vararg-аргументы, в Kotlin-е:

// Functions.kt

fun funcWithVararg(vararg item: String) {  
    println(item.joinToString { "$it | " })  
}

private fun example() {
    funcWithVararg("1", "2", "3")
}

В Swift-коде это превращается в функцию, которая на вход принимает KotlinArray<NSString>.

let arr = KotlinArray<NSString>(
	size: 10, 
	init: { index in "\(index)" as NSString }
)
FunctionsKt.funcWithVararg(item: arr)

В YouTrack-е есть issue про эту проблему, но variardic-параметры в Objective-C являются compile time-аргументами, и Kotlin не может просто взять и преобразовать vararg.


Оглавление