JavaRush /Курси /Kotlin SELF /Типи змінних у Kotlin: var/val і базові типи (Int, String...

Типи змінних у Kotlin: var/val і базові типи (Int, String, Double, Boolean, Char)

Kotlin SELF
Рівень 1 , Лекція 4
Відкрита

1. Оголошення змінних

Пригадаємо, як створювати змінні. У Kotlin змінну оголошують так: var імʼя: Тип або val імʼя: Тип.

  • var (скорочення від variable) — змінна, якій можна присвоювати нове значення (змінювана).
  • val (скорочення від value) — змінна, якій можна присвоїти значення лише один раз (незмінювана).

Приклади:

Команда Пояснення
var s: String
Створюється змінна
s
типу
String
. Така змінна може зберігати текст.
var x: Int
Створюється змінна
x
типу
Int
. Така змінна може зберігати цілі числа.
var d: Double
Створюється змінна
d
типу
Double
. Така змінна може зберігати дробові числа.
Важливо!

Не можна створити дві змінні з однаковими іменами в одному блоці коду. Натомість у різних блоках — можна. Це як коробки, що стоять у різних будинках. Детальніше про блоки коду — у наступних лекціях.

Є й обмеження щодо імені змінної. З одного боку, воно може бути майже будь-яким. З іншого — не повинно містити пробілів і символів на кшталт +, - тощо. Найкраще використовувати в назві змінної лише латинські літери та цифри.

І ще раз нагадаю: у Kotlin має значення, які літери ви пишете — великі чи малі. var a: Int — це не те саме, що var a: int (у Kotlin типу int взагалі немає — є Int).

2. Виведення типу

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

Інакше кажучи, тип змінної можна не вказувати, якщо його однозначно видно із значення, яке ви їй присвоїли. Це економить час і місце. Приклади:

Компактний код Довгий код, еквівалентний коду ліворуч
var a = 5
var a: Int; a = 5
var b = 6
var b: Int; b = 6
var c = 7
var c: Int; c = 7
var d = c + 1
var d: Int; d = c + 1
var s = "I'm Amigo"
var s: String; s = "I'm Amigo"

Так виходить компактніше й зрозуміліше.

Оскільки зі створенням змінних ви вже розібралися, познайомимося з п’ятьма найуживанішими типами в Kotlin. Це Int (цілі числа), String (текст/рядки), Double (дійсні числа), Char (символи) і Boolean (логічний тип).

3. Тип Int

У змінній типу Int можна зберігати цілі числа: 5, -10, 100500. Також із типом Int можна виконувати різні арифметичні операції: додавання, віднімання, множення, ділення та інші. Приклади:

val x: Int = 1                  	// x дорівнюватиме 1
val y: Int = x * 2              	// y дорівнюватиме 2
val z: Int = 5 * y * y + 2 * y + 3 	// z дорівнюватиме 20+4+3, тобто 27
val a: Int = 5                  	// a дорівнюватиме 5
val b: Int = 1                  	// b дорівнюватиме 1
val c: Int = (a - b) * (a + b)  	// c дорівнюватиме 4*6, тобто 24
val a: Int = 64                 	// a дорівнюватиме 64
val b: Int = a / 8              	// b дорівнюватиме 8
val c: Int = b / 4              	// c дорівнюватиме 2
val d: Int = c * 3              	// d дорівнюватиме 6

Якщо в школі ви не пропускали математику, тут вам усе має бути зрозуміло.

4. Тип String

Тип String дає змогу зберігати текстові рядки. Щоб задати текстовий рядок, у Kotlin треба написати його значення й узяти в подвійні лапки. Приклад:

Код Пояснення
val s: String = "Amigo"
s
міститиме текст
Amigo
val s: String = "123"
s
міститиме текст
123
val s: String = "Bond 007"
s
міститиме текст
Bond 007

Виглядає нескладно, правда? Тоді ось ще один цікавий факт.

Рядки в Kotlin можна «склеювати» за допомогою знака плюс — +. Приклад:

fun main() {
    val s1: String = "Amigo" + " the best"  // s1 міститиме Amigo the best
    val s2: String = ""                     // s2 міститиме порожній рядок — узагалі без символів.

    val x: Int = 2025
    val s3: String = "Amigo" + x            // s3 міститиме Amigo2025
}

Зверніть увагу на останній приклад: ми додали рядок і число. Тут теж усе просто. Число буде перетворено на рядок, а потім два рядки буде склеєно. Під час додавання рядка й числа результатом завжди буде рядок.

5. Double — числа з дробовою частиною

Double потрібен, коли є дробова частина: ціна, температура, середній бал, координати, відсотки. Відрізнити Double «на око» легко: у записі літерала є крапка. Так, саме крапка — у коді пишуть 3.14, а не 3,14.

Ось який вигляд матимуть дійсні числа в коді:

fun main() {
    val heightMeters = 1.78
    val coffeeRating = 4.5

    println(heightMeters)  // 1.78
    println(coffeeRating)  // 4.5
}

Важливо вловити суть: 1.78 — це не «майже ціле». Це значення іншого типу, і Kotlin ставитиметься до нього як до дійсного числа.

6. Boolean — правда/хиба

Boolean — це тип, який зберігає лише два значення: true або false. Спочатку він може здаватися нудним, але це саме та «цеглинка», з якої потім будуються перевірки й логіка поведінки застосунку. Зараз вам важливо просто розуміти: true/false — це не рядки (тут немає лапок) і не числа.

Додамо пару «прапорців» у профіль:

fun main() {
    val isStudent = true
    val likesPineappleOnPizza = false

    println(isStudent)             // true
    println(likesPineappleOnPizza) // false
}

Так, це звучить трохи філософськи: «любите ананас на піці — false». Зате приклад добре показує, що змінна може зберігати не лише текст і числа.

7. Char — один символ

Char — це один-єдиний символ. Його записують в одинарних лапках: 'A', '7', '?'. Це не рядок. Рядок може мати довжину 1 символ ("A"), але це все одно інший тип.

Kotlin прямо підкреслює: символи представлені типом Char, а літерали Char пишуться в одинарних лапках.

Ось як це виглядає в коді:

fun main() {
    val firstLetter: Char = 'A'
    val separator: Char = '#'

    println(firstLetter) // A
    println(separator)   // #
}

Тут я навмисно вказав тип явно (: Char), щоб ви побачили форму запису. Зазвичай Kotlin і так здогадається, але інколи така явність корисна — особливо коли ви лише вчитеся читати код.

8. Літерали: як за записом значення зрозуміти тип

Коли ви дивитеся на код, мозок дуже швидко починає вгадувати тип за зовнішнім виглядом значення. Це корисна навичка: ви менше плутаєтеся й швидше знаходите помилки. Kotlin робить приблизно те саме: він аналізує літерал і вирішує, до якого типу його віднести (або просить вас уточнити).

Зручно тримати в голові таку таблицю:

Як записано значення в коді Приклад Який це тип
Цифри без лапок і без крапки
42
Int
Є крапка в числі
3.14
Double
Подвійні лапки
"Hello"
String
true
/
false
true
Boolean
Один символ в одинарних лапках
'A'
Char

Таблиця здається очевидною, але саме на ній найчастіше «спотикаються» в перший день: забули лапки, переплутали їх, поставили кому замість крапки, написали 'AB' і здивувалися, чому це не Char.

9. Виведення змінної на екран

Здається, усе очевидно й елементарно. Тоді, можливо, ви одразу здогадаєтеся, якою командою можна вивести змінну на екран?

Насправді все просто. Щоб вивести щось на екран, ми використовуємо функцію println() і передаємо їй як параметр те, що хочемо показати.

fun main() {
    println("Amigo")         // Amigo

    println("Ami" + "go")    // Amigo

    val s1: String = "Amigo"
    println(s1)              // Amigo

    val s2: String = "Am"
    println(s2 + "igo")      // Amigo
}

Сподіваюся, тепер стало трохи зрозуміліше. А чи правильно ви все засвоїли, ми зараз перевіримо. Практика — критерій істини: лише практикуючись, можна переконатися, що ви справді в усьому розібралися.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ