Kotlin в IntelliJ IDEA Kotlin змінні Kotlin типи даних Kotlin операції з числами Kotlin умовні вирази Kotlin умовні конструкції Kotlin цикли Kotlin послідовності Kotlin масиви Kotlin функціональне програмування Kotlin змінна кількість параметрів. Vararg Kotlin повернення результату. оператор return Kotlin однорядкові і локальні функції Kotlin перевантаження функцій Kotlin Лямбда-вирази Kotlin функції вищого порядку Kotlin Анонімні функції Kotlin ООП Класи і об'єкти Kotlin ООП властивості Kotlin ООП конструктор Kotlin ООП функції в класах Kotlin ООП Пакети та імпорт Kotlin ООП модифікатори видимості Kotlin ООП вкладені класи Kotlin ООП інтерфейси Kotlin ООП спадкування Kotlin ООП Перевизначення методів і властивостей Kotlin ООП Абстрактні класи та методи Kotlin ООП Data-класи Kotlin ООП перерахування enums Kotlin ООП Null і nullable-типи Kotlin ООП Обробка винятків Kotlin ООП перетворення типів Kotlin ООП Інфіксна функція Kotlin ООП функції розширення Kotlin ООП Узагальнені класи і функції Kotlin ООП обмеження узагальнень Kotlin ООП Варіантність, коваріантність і контраваріантність Kotlin Колекції. Змінювані і незмінні колекції Kotlin Колекції. LIST список Kotlin Колекції. Set Kotlin Колекції. Map

Kotlin типи даних


типи даних

У Kotlin кожна змінна має певний тип. Тип даних визначає, які операції можна проводити з даними цього типу.

На відміну від мови Java і ряду інших мов Kotlin не має вбудованих примітивних типів. Всі типи представляють певні класи.


числові типи

  • Byte : зберігає ціле число від -128 до 127 і займає 1 байт

  • Short : зберігає ціле число від -32768 до 32767 і займає 2 байта

  • Int : зберігає ціле число від -2147483648 до 2147483647 і займає 4 байта

  • Long : зберігає ціле число від -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 і займає 8 байт

  • Float : зберігає число з плаваючою крапкою від -3.4 * 10 38 до 3.4 * 10 38 і займає 4 байта

  • Double : зберігає число з плаваючою крапкою від до і займає 8 байта. ±5.0*10-324 ±1.7*10308


літерали

Літерали представляють незмінні значення (іноді їх ще називають константами). Літерали можна передавати змінним в якості значення. Літерали бувають логічними, цілочисельними, речовими, символьними і малими.

Будь-які літерали, які представляють цілі числа, сприймаються як дані типу Int .

val age: Int = 45

Літерал "45" представляє ціле число і є значенням типу Int. Якщо ж ми хочемо явно вказати, що число представляє значення типу Long, то слід використовувати суфікс L:

val age: Long = 45L

Аналогічно всі числа з плаваючою точкою (які містять точку як роздільник цілої та дробової частини) розглядаються як числа типу Double:

val weight: Double = 68.71

Якщо ми хочемо вказати, що дані будуть представляти тип Float, то необхідно використовувати суфікс F:

val weight: Float = 68.71F

Крім чисел в десятковій системі ми можемо визначати числа в двійковій і шістнадцятковій системах.

Шістнадцяткова запис числа починається з 0x , потім йде набір символів від 0 до F, які представляють число:

val age: Int = 0x0A1    // 161

Двійковий запис числа передує символами 0b , після яких йде послідовність з нулів і одиниць:

val a: Int = 0b0101    // 5
val b: Int = 0b1011     // 11

Логічний тип Boolean

Тип Boolean може зберігати одне з двох значень: true (істина) або false (брехня).

val a: Boolean = true
val b: Boolean = false

символи

Символьні дані представлені типом Char . Він представляє окремий символ, який полягає в одинарні лапки.

val a: Char = 'A'
val b: Char = 'B'
val c: Char = 'T'

Також тип Char може представляти спеціальні послідовності, які інтерпретуються особливим чином:

  • \t : табуляція

  • \n : переклад рядка

  • \r : Повернення каретки

  • \' : Одинарна лапка

  • \" : Лапки

  • \\ : Зворотний слеш


рядки

Рядки представлені типом String . Рядок являє послідовність символів, укладену в подвійні лапки, або в потрійні подвійні лапки.

fun main(args: Array<String>) {
     
    val name: String = "Eugene"
 
    println(name)
}

Рядок може містити спеціальні символи або ескейп-послідовності. Наприклад, якщо необхідно вставити в текст переклад на інший рядок, можна використовувати ескейп-послідовність \ n:

val text: String = "SALT II was a series of talks between United States \n and Soviet negotiators from 1972 to 1979"

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

fun main(args: Array<String>) {
 
    val text: String = """SALT II was a series of talks between United States
and Soviet negotiators from 1972 to 1979.
It was a continuation of the SALT I talks."""
 
    println(text)
}

шаблони рядків

Шаблони рядків (string templates) представляють зручний спосіб вставки в рядок різних значень, зокрема, значень змінних. Так, за допомогою знака долара $ ми можемо вводити в рядок значення різних змінних:

fun main(args: Array<String>) {
 
    val firstName = "Tom"
    val lastName = "Smith"
    val welcome = "Hello, $firstName $lastName"
    println(welcome)    // Hello, Tom Smith
}

В даному випадку замість $ firstName і $ lastName вставлятимуться значення цих змінних. При цьому змінні необов'язково повинні представляти строковий тип:

val name = "Tom"
val age = 22
val userInfo = "Your name: $name  Your age: $age"

Тип Any

Тип Any є базовим для всіх інших типів. Решта базові типи, такі як Int або Double, є похідними від Any. Відповідно ми можемо привласнити змінної даного типу будь-яке значення:

var name: Any = "Tom Smith"
name = 6758

виведення типу

Kotlin дозволяє виводити тип змінної на підставі даних, якими змінна ініціалізується. Тому при ініціалізації змінної тип можна опустити:

val age = 5

В даному випадку компілятор побачить, що змінної присвоюється значення типу Int, тому змінна age представлятиме тип Int.

Відповідно якщо ми присвоюємо змінній рядок, то така змінна буде мати тип String.

val name = "Tom"

Однак при цьому нам обов'язково треба ініціалізувати змінну деяким значенням. Тобто не можна спочатку оголосити змінну, а потім десь в програмі привласнити їй якесь значення:

val age     // Ошибка, переменная не инициализирована
age = 5 

Наш партнер:
beta test mp3 playlist downloader