У меня есть мультиплатформенный проект Kotlin для Android и iOS.Функции в общем модуле написаны так:
fun test(successCallback: (String) -> Unit, errorCallback: (Error) -> Unit) {
successCallback("success")
}
Использование функции Android:
Common.test(successCallback = {
Log.d(TAG, it)
},
errorCallback = {
Log.d(TAG, it)
}
})
Использование функции iOS:
Common.test(successCallback: { it in
print(it)
return KotlinUnit()
}, errorCallback: { error in
print(error)
return KotlinUnit()
})
Кажется, что мир JVMобрабатывать тип возврата (Unit) сам по себе (ничего не нужно возвращать), в то время как вы должны вернуть KotlinUnit()
в iOS.
Я бы хотел добиться того же в iOS (обратный вызов без return KotlinUnit()
)