Змінні Котліна та основні типи

У цьому посібнику ви дізнаєтеся про змінні, як їх створювати та основні типи даних, які 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 to 231-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 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типу.

У Котліні масиви представлені Arrayкласом. Клас має getі setфункції, sizeвластивість, і кілька інших корисних функцій-членів.

Щоб детально дізнатися про масиви, відвідайте: Kotlin Arrays

Струни Котліна

У Котліні рядки представлені Stringкласом. Рядкові літерали типу "це рядок" реалізовано як екземпляр цього класу.

Щоб детально дізнатись про струни, vist: Kotlin Strings

Рекомендовані читання

  • Перетворення типу в Kotlin
  • Розумні касти в Котліні
  • Котлінові типи, що допускають обнулення

Цікаві статті...