завершено на 0%

Освоюємо Kotlin

Матеріал з Вікіпідручника
Перейти до навігації Перейти до пошуку

Kotlin - об'єктно-орієнтована мова програмування, що функціонує поверх віртуальної машина Java (JVM). З 7 травня 2019 року є рекомендованою мовою програмування для розробки Android застосунків.

Змінні[ред.]

Оголошення змінних[ред.]

Оголошення змінних відбувається з вказанням ключового слова var після чого йде назва змінної. Тип змінної можна не вказувати, тоді компілятор сам спробує визначити її тип за тим, що ви присвоюєте змінній. Для оголошення констант використовується ключове слово val взамін var.

var x=5 //оголошення цілочисельної змінної
val y=5 //оголошення константи
var num: Int // оголошення цілочисельної змінної з прямим вказанням типу
var hugeNumber = 6L //створення змінної типу Long
var hugeNumber2: Long =6 //теж саме 
var isVar= true // створення змінної типу Boolean
var letter='D' //змінна типу Char
var name="Tom" // змінна типу String
var x=3.14 // змінна типу Double

Типи змінних[ред.]

Цілочисельні типи представлені типами Byte, Short, Int та Long.

Тип Біт Діапазон значень
Byte 8 біт -128 до 127
Short 16 біт –32768 до 32767
Int 32 біт –2147483648 до 2147483647
Long 64 біт –huge до (huge - 1)

Дробові числа представлені типами Float (32 біта) та типом Double (64 біта).

Для представлення символів використовується тип Char.

var letter='D'

Для представлення рядків використовується тип String.

var name ="John"

Boolean змінні застосовуються для значень true або false.

var isMan = true

Перетворення типів[ред.]

Для перетворення одного типу в інший використовуються відповідні функції, наприклад toLong(), що викликаються на відповідному об'єкті (змінній).

var k=65 // створиться змінна типу Int
var l:Long = k.toLong() //до типу Long

Масиви[ред.]

Робота з масивами здійснюється наступним чином:

var myArray = arrayOf(1, 2, 3) // оголошення масиву з трьома числами типу Int
println(myArray[0]) // звернення до першого (нульового) елемента масиву
println (myArray.size) // отримання розміру масива
var myArray2: Array<Byte>=arrayOf(2,3,4) // явне вказання типу масиву

Якщо масив визначається не з допомогою ключового слова var, а з допомогою val, то створену змінну не можна буде перенаправити на інший масив. При цьому елементи масиву можна змінювати.

Привіт Світе![ред.]

Проста програма складається мінімум із одної функції main, що схоже на С/С++ чи java.

fun main(args: Array<String>){ // вказання аргументів функції необов'язкове
    val message="Привіт, Світе!"
    println (message) // якщо виводимо лише значення змінної
    println ("Ми говоримо: $message") //якщо вставляємо змінну в рядок
}

Результат:

Привіт, Світе!
Ми говоримо: Привіт, Світе!

Зверніть увагу, що для вставляння змінної в рядок використовується знак $

Конструкція if[ред.]

Конструкція if пишеться так:

    var x=5;
    if (x==5) {
        println ("співпало")
    }

Якщо після умови йде лише одна інструкція, то фігурні дужки можна опустити.

Зверніть увагу, що перевірка умови на рівність іде з подвійним дорівнює, тобто з оператором ==, а не одним. Одне дорівнює означає присвоєння.

Також можна додавати інструкцію else і створювати складні перевірки умови:

    if (x>0) {
        println ("додатнє число")
    } else if (x<0) {
        println ("від'ємне число")
    } else println ("ні додатнє, ні від'ємне (0)")

В Kotlin if можна використовувати для повернення значення.

   println (if (x>0) "додатнє число"
           else if (x<0) "від'ємне число"
           else "ні додатнє, ні від'ємне (0)")

в даному випадку кожна секція конструкції if повертає текстовий рядок, який виводиться інструкцією println.

Функції[ред.]

Оголошення функції в Kotlin із параметрами відбувається із вказанням ключового слова fun і вказанням назв параметрів і їхніх типів:

fun max(a: Int, b: Int){
    println(if (a>b) a else b)
}

Викликати функцію із функції main можна так:

fun main(args: Array<String>) {
    max(4, 1)
}

Якщо потрібно повернути певне значення із функції, то після дужок і двокрапки вказується тип значення, що повертається:

fun max(a: Int, b: Int):Int{
    return if (a>b) a else b
}

Компілятор строго контролюватеме чи ви передаєте аргументи правильного типу у функцію, тобто якщо написати max("a", 3.14), то видасть помилку.

Якщо функція не повертає ніякого значення, то можна вказати ключове слово Unit замість типу. Але це не обов'язково, можна нічого не вказувати.

fun max(a: Int, b: Int):Unit{
    println(if (a>b) a else b)
}
//або так
fun max(a: Int, b: Int){
    println(if (a>b) a else b)
}

Цикли[ред.]

Цикл while[ред.]

Звичний цикл з передумовою while працює в Kotlin як і в інших мовах:

var x=1
while (x<20){
   x=x+1
}

Цикл for[ред.]

Цикл for дозволяє здійснити перебір чисел в певному діапазоні і має вигляд:

for (x in 1..15){
    //код програми
}

Якщо потрібно, щоб останній елемент не включався використовують замість .. ключове слово until:

for (x in 1 until 100) println(x)  // виведе числа від 1 до 99

Зверніть увагу, що якщо цикл складається з одного рядка, то фігурні дужки можна опустити.

Для перебору в зворотньому порядку використовується ключове слово downTo.

for (x in 15 downTo 1) println(x)

Якщо потрібно перебирати не з одиничним кроком, то можна використати ключове слово step для задання кроку перебору.

for (x in 1..100 step 2) println(x)

Існує можливість перебрати всі елементи масиву наступним чином:

var myArray: Array<Byte> = arrayOf(1, 2, 3)
for (item in myArray){
    println("myArray has $item")
}

Можна перебрати масив використовуючи його індекси:

    var myArray: Array<Byte> = arrayOf(1, 2, 3)
    for (index in myArray.indices){
        println("$index =${myArray[index]}")
    }

Більш того, можна одночасно пройтися і по індексам і по значенням масиву:

    var myArray: Array<Byte> = arrayOf(1, 2, 3, 5)
    for ((index, item) in myArray.withIndex()){
        println("[$index] =$item")
    }

Результат останнього шматка коду:

[0] =1
[1] =2
[2] =3
[3] =5