Kotlin Fundamentals · Довідка
Компактний довідник для швидкого повторення перед іспитом чи практикою.
fun double(x: Int): Int {
return 2 * x
}
| Частина | Значення |
|---|---|
fun | ключове слово оголошення функції |
double | ім'я функції |
(x: Int) | параметри: ім'я: Тип |
: Int | тип значення, яке повертає функція |
val: їх не можна переприсвоїти.fun printSum(a: Int, b: Int): Unit {
println(a + b)
}
// : Unit можна не писати — це типова поведінка
fun printSum(a: Int, b: Int) {
println(a + b)
}
Якщо тіло функції — один вираз, можна опустити фігурні дужки, return і тип повернення (компілятор виведе його сам).
fun double(x: Int): Int = x * 2
// тип виведено автоматично
fun double(x: Int) = x * 2
=). Для функцій із тілом у { } тип потрібно писати явно (окрім Unit).fun read(
b: ByteArray,
off: Int = 0,
len: Int = b.size,
) { /* ... */ }
read(data) // off = 0, len = data.size
read(data, 2) // off = 2, len = data.size
read(data, 2, 10) // усі три задано явно
fun reformat(
str: String,
normalizeCase: Boolean = true,
upperCaseFirstLetter: Boolean = true,
divideByCamelHumps: Boolean = false,
wordSeparator: Char = ' ',
) { /* ... */ }
reformat(
"String!",
normalizeCase = false,
divideByCamelHumps = true,
)
| Позиційний виклик | Іменований виклик |
|---|---|
| порядок аргументів важливий | порядок можна змінювати |
| незручно з default-параметрами | можна пропускати будь-які default-параметри |
fun <T> asList(vararg ts: T): List<T> {
val result = ArrayList<T>()
for (t in ts) result.add(t)
return result
}
val list = asList(1, 2, 3) // [1, 2, 3]
Усередині функції vararg-параметр поводиться як масив (Array<T>).
Щоб передати вміст готового масиву у vararg-параметр, використовують *:
val a = arrayOf(1, 2, 3)
val list = asList(-1, 0, *a, 4) // [-1, 0, 1, 2, 3, 4]
* компілятор спробує передати сам масив як один елемент — і не скомпілюється, якщо типи не збігаються.vararg-параметр зазвичай ставлять останнім у списку параметрів. Якщо після нього є ще параметри, їх обов'язково потрібно передавати як іменовані аргументи.ім'я = значення, незалежно від позиції{ }, тіло якої — один вираз після =Джерело: Kotlin Docs — Functions
← Усі уроки