Kotlin Fundamentals · Модуль «Функції» · Урок 4 з 8 · ~5 хв
Остання зупинка перед лямбдами: функції, які приймають «скільки завгодно» аргументів.
vararg дозволяє передати скільки завгодно аргументів одного типу — всередині функції вони доступні як масив:
fun sum(vararg numbers: Int): Int {
var total = 0
for (n in numbers) total += n
return total
}
sum(1, 2, 3) // 6
sum() // 0
sum(1, 2, 3, 4, 5) // 15
vararg-параметр зазвичай ставлять останнім у списку параметрів. Якщо після нього є ще параметри, їх обов'язково потрібно передавати як іменовані аргументи.Щоб передати вміст готового масиву у vararg-параметр, використовують *:
val nums = intArrayOf(1, 2, 3)
sum(*nums)
* компілятор спробує передати сам масив як один елемент — і не скомпілюється, якщо типи не збігаються.sum() без жодного аргументу, якщо total ініціалізовано нулем?Додайте у main ще один виклик sum з довільною кількістю чисел і перевірте, що вивід очікуваний.
Не завантажується? Відкрити напряму →
Повний синтаксис і глосарій — у довіднику «Функції в Kotlin — шпаргалка».