В този урок ще научите за променливите, как да ги създадете и основните типове данни, които Kotlin поддържа за създаване на променливи.
Както знаете, променливата е място в паметта (място за съхранение), където да се съхраняват данни.
За да се посочи областта за съхранение, всяка променлива трябва да получи уникално име (идентификатор). Научете повече за Как да наименувате променлива в Kotlin?
Как да декларирам променлива в Kotlin?
За деклариране на променлива в Kotlin се използва var
или val
ключова дума. Ето пример:
var language = "френски" вал резултат = 95
Разликата в използването на var и val е обсъдена по-нататък в статията. Засега нека се съсредоточим върху декларирането на променливи.
Тук езикът е променлива от тип String
и score
е променлива от тип Int
. Не е необходимо да указвате вида на променливите; Котлин имплицитно прави това вместо вас. Компилаторът знае това чрез израз на инициализатор ("френски" е a String
, а 95 е цяло число в горната програма). Това се нарича извод на типа при програмиране.
Можете обаче изрично да посочите типа, ако искате:
var език: String = "френски" вал резултат: Int = 95
Инициализирахме променлива по време на декларирането в горните примери. Това обаче не е необходимо. Можете да декларирате променлива и да посочите нейния тип в един оператор и да инициализирате променливата в друг оператор по-късно в програмата.
var language: String // декларация на променлива от тип String … language = "French" // инициализация на променлива val score: Int // декларация на променлива от тип Int … score = 95 // инициализация на променлива
Ето няколко примера, които водят до грешка.
var език // грешка език = "френски"
Тук типът на езиковата променлива не е изрично посочен, нито променливата се инициализира по време на декларацията.
var език: Език на низа = 14 // Грешка
Тук се опитваме да присвоим 14 (целочислена стойност) на променлива от различен тип ( String
).
Разлика между var и val
- val (Неизменяема препратка) - Променливата, декларирана с
val
ключова дума, не може да бъде променена, след като стойността е присвоена. Той е подобен на крайната променлива в Java. - var (Mutable reference) - Променливата, декларирана с
var
ключова дума, може да бъде променена по-късно в програмата. Той съответства на обикновената променлива Java.
Ето няколко примера:
var език = "френски" език = "немски"
Тук language
променливата е преназначена на немски. Тъй като променливата е декларирана с използване var
, този код работи перфектно.
val language = "френски" language = "немски" // Грешка
Не можете да присвоите езикова променлива на German
в горния пример, тъй като променливата е декларирана с използване val
.
Сега знаете какво са променливите на Kotlin, време е да научите различни стойности, които променливата на Kotlin може да приеме.
Kotlin Основни типове
Kotlin е статично типизиран език като Java. Тоест, типът на променлива е известен по време на компилацията. Например,
език на val: Int val marks = 12.3
Тук компилаторът знае, че езикът е от тип Int
, а маркировките са от тип Double
преди времето за компилиране.
Вградените типове в Kotlin могат да бъдат категоризирани като:
- Числа
- Герои
- Логически
- Масиви
Тип номер
Номерата в Kotlin са подобни на Java. Има 6 вградени типа, представляващи числа.
- Байт
- Къс
- Международна
- Дълго
- Плувка
- Двойна
1. Байт
- Типът
Byte
данни може да има стойности от -128 до 127 (8-битово цяло число на комплемента, подписано от две) - Използва се вместо
Int
или други целочислени типове данни за спестяване на памет, ако е сигурно, че стойността на променлива ще бъде в (-128, 127) - Пример:
fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )
Когато стартирате програмата, изходът ще бъде:
112
2. Кратко
- Типът
Short
данни може да има стойности от -32768 до 32767 (16-битово цяло число на комплемента с подписани две). - Използва се вместо други целочислени типове данни за спестяване на памет, ако е сигурно, че стойността на променливата ще бъде в (-32768, 32767).
- Пример:
fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )
Когато стартирате програмата, изходът ще бъде:
-11245
3. Международна
- Типът
Int
данни може да има стойности от до (32-битово цяло число на комплемента, подписано с две).-231
231-1
- Пример:
fun main(args : Array) ( val score: Int = 100000 println("$score") )
Когато стартирате програмата, изходът ще бъде:
100000
Ако присвоите цяло число между за да променлива, без изрично да се посочи неговия вид, променливата ще бъде от тип. Например,-231
231-1
Int
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
тип.
В Kotlin масивите са представени от Array
класа. Класът има get
и set
функции, size
свойство и няколко други полезни функции-членове.
За да научите подробно за масивите, посетете: Kotlin Arrays
Струни на Котлин
В Kotlin низовете са представени от String
класа. Низовите литерали като „това е низ“ е реализиран като екземпляр на този клас.
За да научите подробно за струните, vist: Kotlin Strings
Препоръчителни четива
- Преобразуване на тип в Kotlin
- Умни рокади в Котлин
- Kotlin заменяеми типове