Переменные Котлина и базовые типы

В этом руководстве вы узнаете о переменных, о том, как их создавать, и об основных типах данных, которые Kotlin поддерживает для создания переменных.

Как вы знаете, переменная - это место в памяти (область хранения) для хранения данных.

Чтобы указать область хранения, каждой переменной следует дать уникальное имя (идентификатор). Узнайте больше о том, как назвать переменную в Kotlin?

Как объявить переменную в Котлине?

Для объявления переменной в Kotlin используется ключевое слово varor val. Вот пример:

 var language = "French" оценка val = 95

Разница в использовании var и val обсуждается далее в статье. А пока давайте сосредоточимся на объявлении переменных.

Здесь язык - это переменная типа Stringи scoreпеременная типа Int. Вам не нужно указывать тип переменных; Kotlin неявно делает это за вас. Компилятор знает это по выражению инициализатора («французский» - это a String, а 95 - целочисленное значение в приведенной выше программе). В программировании это называется выводом типа.

Однако вы можете явно указать тип, если хотите:

 var language: String = "French" оценка val: Int = 95

Мы инициализировали переменную во время объявления в приведенных выше примерах. Однако в этом нет необходимости. Вы можете объявить переменную и указать ее тип в одном операторе, а затем инициализировать переменную в другом операторе в программе.

 var language: String // объявление переменной типа String… language = "French" // инициализация переменной val score: Int // объявление переменной типа Int… score = 95 // инициализация переменной 

Вот несколько примеров, которые приводят к ошибке.

 var language // Ошибка language = "French"

Здесь тип языковой переменной не указывается явно, и переменная не инициализируется во время объявления.

 var language: String language = 14 // Ошибка

Здесь мы пытаемся присвоить 14 (целочисленное значение) переменной другого типа ( String).

Разница между var и val

  • val (Неизменяемая ссылка) - переменная, объявленная с использованием valключевого слова, не может быть изменена после присвоения значения. Это похоже на конечную переменную в Java.
  • var (изменяемая ссылка) - переменную, объявленную с помощью varключевого слова, можно изменить позже в программе. Соответствует обычной переменной Java.

Вот несколько примеров:

 var language = "French" language = "German" 

Здесь languageпеременная переназначена на немецкий язык. Поскольку переменная объявлена ​​с использованием var, этот код отлично работает.

 val language = "French" language = "German" // Ошибка

Вы не можете переназначить языковую переменную Germanв приведенном выше примере, потому что переменная объявлена ​​с использованием val.

Теперь, когда вы знаете, что такое переменные Kotlin, пришло время изучить различные значения, которые может принимать переменная Kotlin.

Основные типы Котлина

Kotlin - это язык со статической типизацией, такой как Java. То есть тип переменной известен во время компиляции. Например,

 язык val: Int val mark = 12,3

Здесь компилятор знает, что язык относится к типу Int, а метки имеют тип Doubleдо времени компиляции.

Встроенные типы в Kotlin можно разделить на следующие категории:

  • Числа
  • Символы
  • Булевы
  • Массивы

Тип номера

Номера в Kotlin похожи на Java. Есть 6 встроенных типов, представляющих числа.

  • Байт
  • короткий
  • Int
  • Длинная
  • Плавать
  • Двойной

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классом. Строковые литералы, такие как «это строка», реализованы как экземпляр этого класса.

Чтобы узнать подробнее о струнах, посетите: Kotlin Strings

Рекомендуемая литература

  • Преобразование типов в Котлине
  • Умные слепки в Котлине
  • Типы Kotlin, допускающие значение NULL

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