У цьому посібнику ви дізнаєтеся про змінні, як їх створювати та основні типи даних, які Kotlin підтримує для створення змінних.
Як відомо, змінна - це місце в пам'яті (область зберігання) для зберігання даних.
Щоб вказати область зберігання, кожній змінній слід дати унікальне ім'я (ідентифікатор). Дізнайтеся більше про те, як назвати змінну в Kotlin?
Як оголосити змінну в Kotlin?
Для оголошення змінної в Kotlin використовується var
або val
ключове слово, або ключове слово. Ось приклад:
var мова = "французька" оцінка за валом = 95
Різниця у використанні var і val обговорюється далі в статті. А зараз зупинимось на декларації змінних.
Тут мова є змінною типу String
і score
є змінною типу Int
. Не потрібно вказувати тип змінних; Котлін неявно робить це за вас. Компілятор знає це за виразом ініціалізатора ("французькою" є a String
, а 95 - цілим числом у наведеній вище програмі). Це називається висновком типу в програмуванні.
Однак ви можете явно вказати тип, якщо хочете:
var мова: Рядок = "французька" оцінка за валом: Int = 95
Ми ініціалізували змінну під час оголошення у наведених вище прикладах. Однак це не обов'язково. Ви можете оголосити змінну та вказати її тип в одному операторі, а ініціалізувати змінну в іншому операторі пізніше в програмі.
мова мови: рядок // декларація змінної типу String … language = "French" // ініціалізація змінної val score: Int // декларація змінної типу Int … score = 95 // ініціалізація змінної
Ось кілька прикладів, що призводять до помилок.
var мова // Помилка мови = "французька"
Тут тип мовної змінної явно не вказаний, ані змінна не ініціалізується під час оголошення.
мова мови: Мова рядка = 14 // Помилка
Тут ми намагаємося призначити 14 (ціле значення) змінній різного типу ( String
).
Різниця між var і val
- val (незмінне посилання) - Змінна, оголошена за допомогою
val
ключового слова, не може бути змінена після присвоєння значення. Це схоже на остаточну змінну в Java. - var (Mutable reference) - змінну, оголошену за допомогою
var
ключового слова, можна змінити пізніше в програмі. Це відповідає звичайній змінній Java.
Ось кілька прикладів:
var мова = "французька" мова = "німецька"
Тут language
змінна перепризначена німецькій мові. Оскільки змінна оголошена за допомогою var
, цей код працює ідеально.
val мова = "французька" мова = "німецька" // Помилка
Ви не можете перепризначити змінну мови German
у наведеному вище прикладі, оскільки змінна оголошена за допомогою val
.
Тепер ви знаєте, що таке змінні Котліна, прийшов час вивчити різні значення, які може приймати змінна Котліна.
Котлін Основні типи
Kotlin - це статично набрана мова, як Java. Тобто, тип змінної відомий під час компіляції. Наприклад,
мова val: Int val marks = 12.3
Тут компілятор знає, що мова має тип Int
, а позначки - тип Double
до часу компіляції.
Вбудовані типи в Kotlin можна класифікувати як:
- Числа
- Персонажі
- Логічні
- Масиви
Тип номера
Номери в Котліні схожі на Java. Є 6 вбудованих типів, що представляють числа.
- Байт
- Короткий
- Міжнародний
- Довгота
- Поплавок
- Подвійний
1. Байт
- Тип
Byte
даних може мати значення від -128 до 127 (8-бітне ціле доповнення з двома знаками). - It is used instead of
Int
or other integer data types to save memory if it's certain that the value of a variable will be within (-128, 127) - Example:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
When you run the program, the output will be:
112
2. Short
- The
Short
data type can have values from -32768 to 32767 (16-bit signed two's complement integer). - It is used instead of other integer data types to save memory if it's certain that the value of the variable will be within (-32768, 32767).
- Example:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
When you run the program, the output will be:
-11245
3. Int
- The
Int
data type can have values from-231
to231-1
(32-bit signed two's complement integer). - Example:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
When you run the program, the output will be:
100000
If you assign an integer between -231
to 231-1
to a variable without explicitly specifying its type, the variable will be of Int
type. For example,
fun main(args : Array) ( // score is of type Int val score = 10 println("$score") )
If you are using IntelliJ IDEA, you can place cursor inside the variable and press Ctrl + Shift + P
to see its type.
4. Long
- The
Long
data type can have values from-263
to263-1
(64-bit signed two's complement integer). - Example:
fun main(args : Array) ( val highestScore: Long = 9999 println("$highestScore") )
When you run the program, the output will be:
9999
If you assign an integer value greater than 231-1
or less than -231
to a variable (without explicitly specifying its type), the variable will be of Long
type. For example,
val distance = 10000000000 // distance variable of type Long
Similarly, you can use capital letter L to specify that the variable is of type Long
. For example,
val distance = 100L // distance value of type Long
5. Double
- The
Double
type is a double-precision 64-bit floating point. - Example:
fun main(args : Array) ( // distance is of type Double val distance = 999.5 println("$distance") )
When you run the program, the output will be:
999.5
Float
- The
Float
data type is a single-precision 32-bit floating point. Learn more about single precision and double precision floating point if you are interested. - Example:
fun main(args : Array) ( // distance is of type Float val distance = 19.5F println("$distance") )
When you run the program, the output will be:
19.5
Notice that, we have used 19.5F
instead of 19.5
in the above program. It is because 19.5
is a Double
literal, and you cannot assign Double
value to a variable of type Float
.
To tell compiler to treat 19.5
as Float
, you need to use F at the end.
If you are not sure what number value a variable will be assigned in the program, you can specify it as Number
type. This allows you to assign both integer and floating-point value to the variable (one at a time). For example:
fun main(args : Array) ( var test: Number = 12.2 println("$test") test = 12 // Int smart cast from Number println("$test") test = 120L // Long smart cast from Number println("$test") )
When you run the program, the output will be:
12.2 12 120
To learn more, visit: Kotlin smart casts
Char
To represent a character in Kotlin, Char types are used.
Unlike Java, Char types cannot be treated as numbers. Visit this page to learn more about Java char Type.
fun main(args : Array) ( val letter: Char letter = 'k' println("$letter") )
When you run the program, the output will be:
k
In Java, you can do something like:
char letter = 65;
However, the following code gives error in Kotlin.
var letter: Char = 65 // Error
Boolean
- The
Boolean
data type has two possible values, eithertrue
orfalse
. - Example:
fun main(args : Array) ( val flag = true println("$flag") )
Booleans are used in decision making statements (will be discussed in later chapter).
Kotlin Arrays
Масив - це контейнер, що містить дані (значення) одного окремого типу. Наприклад, ви можете створити масив, який може містити 100 значень Int
типу.
У Котліні масиви представлені Array
класом. Клас має get
і set
функції, size
властивість, і кілька інших корисних функцій-членів.
Щоб детально дізнатися про масиви, відвідайте: Kotlin Arrays
Струни Котліна
У Котліні рядки представлені String
класом. Рядкові літерали типу "це рядок" реалізовано як екземпляр цього класу.
Щоб детально дізнатись про струни, vist: Kotlin Strings
Рекомендовані читання
- Перетворення типу в Kotlin
- Розумні касти в Котліні
- Котлінові типи, що допускають обнулення