Kotlin променливи и основни типове

В този урок ще научите за променливите, как да ги създадете и основните типове данни, които 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-битово цяло число на комплемента, подписано с две).-231231-1
  • Пример:
 fun main(args : Array) ( val score: Int = 100000 println("$score") )

Когато стартирате програмата, изходът ще бъде:

 100000

Ако присвоите цяло число между за да променлива, без изрично да се посочи неговия вид, променливата ще бъде от тип. Например,-231231-1Int

 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 to 263-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, either true or false.
  • 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 заменяеми типове

Интересни статии...