Учебники

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

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

чисел

Представление чисел в Kotlin очень похоже на Java, однако Kotlin не позволяет внутреннее преобразование различных типов данных. В следующей таблице перечислены разные длины переменных для разных чисел.

Тип Размер
двойной 64
терка 32
Долго 64
Int 32
короткий 16
Байт 8

В следующем примере мы увидим, как Kotlin работает с различными типами данных. Пожалуйста, введите следующий код в нашу базу кодирования.

Live Demo

fun main(args: Array<String>) {
   val a: Int = 10000
   val d: Double = 100.00
   val f: Float = 100.00f
   val l: Long = 1000000004
   val s: Short = 10
   val b: Byte = 1
   
   println("Your Int Value is "+a);
   println("Your Double  Value is "+d);
   println("Your Float Value is "+f);
   println("Your Long Value is "+l);
   println("Your Short Value is "+s);
   println("Your Byte Value is "+b);
}

Когда вы запустите указанный выше фрагмент кода в основании кода, он сгенерирует следующий вывод в веб-консоли.

Your Int Value is 10000
Your Double  Value is 100.0
Your Float Value is 100.0
Your Long Value is 1000000004
Your Short Value is 10
Your Byte Value is 1

Персонажи

Котлин представляет персонажа с помощью символа . Символ должен быть объявлен в одинарной кавычке, например «c» . Пожалуйста, введите следующий код в нашем коде и посмотрите, как Котлин интерпретирует символьную переменную. Символьная переменная не может быть объявлена ​​как числовые переменные. Переменная Kotlin может быть объявлена ​​двумя способами — один с использованием «var», а другой с использованием «val» .

Live Demo

fun main(args: Array<String>) {
   val letter: Char    // defining a variable 
   letter = 'A'        // Assigning a value to it 
   println("$letter")
}

Приведенный выше фрагмент кода выдаст следующий вывод в окне вывода браузера.

A

логический

Boolean очень прост, как и другие языки программирования. У нас есть только два значения для логического значения — либо true, либо false. В следующем примере мы увидим, как Kotlin интерпретирует Boolean.

Live Demo

fun main(args: Array<String>) {
   val letter: Boolean   // defining a variable 
   letter = true         // Assinging a value to it 
   println("Your character value is "+"$letter")
}

Приведенный выше фрагмент кода выдаст следующий вывод в браузере.

Your character value is true

Струны

Строки — это массивы символов. Как и Java, они неизменны по своей природе. У нас есть два типа строк, доступных в Kotlin: один называется raw String, а другой — escape-String . В следующем примере мы будем использовать эти строки.

Live Demo

fun main(args: Array<String>) {
   var rawString :String  = "I am Raw String!"
   val escapedString : String  = "I am escaped String!\n"
   
   println("Hello!"+escapedString)
   println("Hey!!"+rawString)   
}

Вышеприведенный пример экранированной строки позволяет предоставить дополнительный пробел после первого оператора печати. Ниже будет вывод в браузере.

Hello!I am escaped String!

Hey!!I am Raw String!

Массивы

Массивы представляют собой совокупность однородных данных. Как и Java, Kotlin поддерживает массивы разных типов данных. В следующем примере мы будем использовать разные массивы.

Live Demo

fun main(args: Array<String>) {
   val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
   println("Hey!! I am array Example"+numbers[2])
}

Приведенный выше фрагмент кода дает следующий вывод. Индексация массива аналогична другим языкам программирования. Здесь мы ищем второй индекс, значение которого равно «3».

Hey!! I am array Example3

Коллекции

Сбор является очень важной частью структуры данных, которая облегчает разработку программного обеспечения для инженеров. Kotlin имеет два типа коллекций — один является неизменяемой коллекцией (что означает списки, карты и наборы, которые нельзя редактировать), а другой — изменяемой коллекцией (этот тип коллекции является редактируемой). Очень важно помнить о типе коллекции, используемой в вашем приложении, поскольку система Kotlin не представляет какой-либо конкретной разницы в них.

Live Demo

fun main(args: Array<String>) { 
   val numbers: MutableList<Int> = mutableListOf(1, 2, 3) //mutable List 
   val readOnlyView: List<Int> = numbers                  // immutable list 
   println("my mutable list--"+numbers)        // prints "[1, 2, 3]" 
   numbers.add(4) 
   println("my mutable list after addition --"+numbers)        // prints "[1, 2, 3, 4]" 
   println(readOnlyView)     
   readOnlyView.clear()    // ⇒ does not compile  
// gives error  
}

Приведенный выше фрагмент кода выдаст следующий вывод в браузере. Выдает ошибку, когда мы пытаемся очистить изменяемый список коллекции.

main.kt:9:18: error: unresolved reference: clear
   readOnlyView.clear()    // -> does not compile  
                 ^

В коллекции Kotlin предоставляет несколько полезных методов, таких как first (), last (), filter () и т. Д. Все эти методы являются наглядными и простыми в реализации. Более того, Kotlin следует той же структуре, что и Java, при реализации коллекции. Вы можете свободно реализовать любую коллекцию по вашему выбору, такую ​​как Карта и Набор.

В следующем примере мы реализовали Map и Set, используя различные встроенные методы.

Live Demo

fun main(args: Array<String>) {
   val items = listOf(1, 2, 3, 4)
   println("First Element of our list----"+items.first())
   println("Last Element of our list----"+items.last())
   println("Even Numbers of our List----"+items.
      filter { it % 2 = = 0 })   // returns [2, 4]
   
   val readWriteMap = hashMapOf("foo" to 1, "bar" to 2)
   println(readWriteMap["foo"])  // prints "1"
   
   val strings = hashSetOf("a", "b", "c", "c")
   println("My Set Values are"+strings)
}

Приведенный выше фрагмент кода приводит к следующему выводу в браузере.

First Element of our list----1
Last Element of our list----4
Even Numbers of our List----[2, 4]
1
My Set Values are[a, b, c]

Изменяется

Диапазоны — еще одна уникальная особенность Котлина. Как и Haskell, он предоставляет оператор, который помогает вам перебирать диапазон. Внутри это реализовано с помощью rangeTo (), а оператор имеет вид (..) .

В следующем примере мы увидим, как Котлин интерпретирует этот оператор диапазона.

Live Demo

fun main(args: Array<String>) {
   val i:Int  = 2
   for (j in 1..4) 
   print(j) // prints "1234"
   
   if (i in 1..10) { // equivalent of 1 < = i && i < = 10
      println("we found your number --"+i)
   }
}

Приведенный выше фрагмент кода приводит к следующему выводу в браузере.