Kotlin - Tipos básicos

En este capítulo, aprenderemos sobre los tipos de datos básicos disponibles en el lenguaje de programación Kotlin.

Números

La representación de números en Kotlin es bastante similar a Java, sin embargo, Kotlin no permite la conversión interna de diferentes tipos de datos. La siguiente tabla enumera diferentes longitudes variables para diferentes números.

Tipo Talla
Doble 64
Flotador 32
Largo 64
En t 32
Corto dieciséis
Byte 8

En el siguiente ejemplo, veremos cómo Kotlin trabaja con diferentes tipos de datos. Introduzca el siguiente conjunto de códigos en nuestro campo de codificación.

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);
}

Cuando ejecuta el fragmento de código anterior en el campo de codificación, generará la siguiente salida en la consola web.

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

Caracteres

Kotlin representa al personaje usando char. El carácter debe declararse en una comilla simple como‘c’. Ingrese el siguiente código en nuestro campo de codificación y vea cómo Kotlin interpreta la variable de carácter. La variable de caracteres no se puede declarar como variables numéricas. La variable Kotlin se puede declarar de dos maneras: una usando“var” y otro usando “val”.

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

El fragmento de código anterior producirá el siguiente resultado en la ventana de resultados del navegador.

A

Booleano

Boolean es muy simple como otros lenguajes de programación. Solo tenemos dos valores para Boolean: verdadero o falso. En el siguiente ejemplo, veremos cómo Kotlin interpreta 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")
}

El fragmento de código anterior producirá el siguiente resultado en el navegador.

Your character value is true

Instrumentos de cuerda

Las cadenas son matrices de caracteres. Como Java, son de naturaleza inmutable. Tenemos dos tipos de cuerdas disponibles en Kotlin: una se llamaraw String y otro se llama escaped String. En el siguiente ejemplo, haremos uso de estas cadenas.

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)   
}

El ejemplo anterior de cadena de escape permite proporcionar espacio de línea adicional después de la primera declaración de impresión. Lo siguiente será la salida en el navegador.

Hello!I am escaped String!

Hey!!I am Raw String!

Matrices

Las matrices son una colección de datos homogéneos. Al igual que Java, Kotlin admite matrices de diferentes tipos de datos. En el siguiente ejemplo, usaremos diferentes matrices.

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

El fragmento de código anterior produce el siguiente resultado. La indexación de la matriz es similar a otros lenguajes de programación. Aquí, estamos buscando un segundo índice, cuyo valor es "3".

Hey!! I am array Example3

Colecciones

La recopilación es una parte muy importante de la estructura de datos, lo que facilita el desarrollo de software para los ingenieros. Kotlin tiene dos tipos de colección: una esimmutable collection (lo que significa listas, mapas y conjuntos que no se pueden editar) y otro es mutable collection(este tipo de colección es editable). Es muy importante tener en cuenta el tipo de colección que se utiliza en su aplicación, ya que el sistema Kotlin no representa ninguna diferencia específica en ellas.

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  
}

El fragmento de código anterior producirá el siguiente resultado en el navegador. Da un error cuando intentamos borrar la lista mutable de colección.

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

En la recopilación, Kotlin proporciona algunos métodos útiles como first(), last(), filter(), etc. Todos estos métodos son autodescriptivos y fáciles de implementar. Además, Kotlin sigue la misma estructura que Java al implementar la colección. Puede implementar cualquier colección de su elección, como Mapa y Conjunto.

En el siguiente ejemplo, hemos implementado Map and Set utilizando diferentes métodos integrados.

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)
}

El fragmento de código anterior produce el siguiente resultado en el navegador.

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]

Rangos

Los rangos son otra característica única de Kotlin. Al igual que Haskell, proporciona un operador que le ayuda a recorrer un rango. Internamente, se implementa utilizandorangeTo() y su forma de operador es (..).

En el siguiente ejemplo, veremos cómo Kotlin interpreta este operador de rango.

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)
   }
}

El fragmento de código anterior produce el siguiente resultado en el navegador.

1234we found your number --2