что такое (Int) -> Unit и как правильно использовать параметр действия?
(Int) -> Unit
описывает функцию, которая принимает Int
и возвращает Unit
(недействительным).Чтобы назвать его как есть, вы можете сделать это следующим образом:
repeat(3, {anotherFunction()})
или
repeat(3) {
anotherFunction()
}
Однако число итераций, которое произойдет, недоступно, но выможно определить свой собственный, позаимствовав его из стандартной библиотеки ...
public inline fun repeat(times: Int, action: (Int, Int) -> Unit) {
for (index in 0 until times) {
action(times, index)
}
}
И тогда вы можете использовать его так:
repeat(3) { times, i ->
println("Called $i/$times")
}