В этой главе мы узнаем об основных типах данных, доступных на языке программирования Kotlin.
чисел
Представление чисел в Kotlin очень похоже на Java, однако Kotlin не позволяет внутреннее преобразование различных типов данных. В следующей таблице перечислены разные длины переменных для разных чисел.
Тип | Размер |
---|---|
двойной | 64 |
терка | 32 |
Долго | 64 |
Int | 32 |
короткий | 16 |
Байт | 8 |
В следующем примере мы увидим, как Kotlin работает с различными типами данных. Пожалуйста, введите следующий код в нашу базу кодирования.
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» .
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.
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 . В следующем примере мы будем использовать эти строки.
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 поддерживает массивы разных типов данных. В следующем примере мы будем использовать разные массивы.
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 не представляет какой-либо конкретной разницы в них.
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, используя различные встроенные методы.
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 (), а оператор имеет вид (..) .
В следующем примере мы увидим, как Котлин интерпретирует этот оператор диапазона.
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) } }
Приведенный выше фрагмент кода приводит к следующему выводу в браузере.