Variables de Kotlin y tipos básicos

En este tutorial, aprenderá sobre las variables, cómo crearlas y los tipos de datos básicos que admite Kotlin para crear variables.

Como sabe, una variable es una ubicación en la memoria (área de almacenamiento) para almacenar datos.

Para indicar el área de almacenamiento, a cada variable se le debe dar un nombre único (identificador). Más información sobre cómo nombrar una variable en Kotlin

¿Cómo declarar una variable en Kotlin?

Para declarar una variable en Kotlin, se usa la palabra clave varo val. Aquí hay un ejemplo:

 var language = "French" val score = 95

La diferencia en el uso de var y val se analiza más adelante en el artículo. Por ahora, centrémonos en la declaración de variables.

Aquí, el idioma es una variable de tipo Stringy scorees una variable de tipo Int. No es necesario especificar el tipo de variables; Kotlin implícitamente lo hace por ti. El compilador lo sabe por la expresión del inicializador ("French" es un String, y 95 es un valor entero en el programa anterior). A esto se le llama inferencia de tipo en programación.

Sin embargo, puede especificar explícitamente el tipo si desea:

 var language: String = "French" val score: Int = 95

Hemos inicializado la variable durante la declaración en los ejemplos anteriores. Sin embargo, no es necesario. Puede declarar la variable y especificar su tipo en una declaración e inicializar la variable en otra declaración más adelante en el programa.

 var language: String // declaración de variable de tipo String… language = "French" // inicialización de variable val score: Int // declaración de variable de tipo Int… score = 95 // inicialización de variable 

A continuación, se muestran algunos ejemplos que generan errores.

 var language // Error language = "French"

Aquí, el tipo de variable de lenguaje no se especifica explícitamente, ni la variable se inicializa durante la declaración.

 var language: String language = 14 // Error

Aquí, estamos tratando de asignar 14 (valor entero) a una variable de tipo diferente ( String).

Diferencia entre var y val

  • val (referencia inmutable): la variable declarada mediante la valpalabra clave no se puede cambiar una vez que se asigna el valor. Es similar a la variable final en Java.
  • var (referencia mutable): la variable declarada mediante la varpalabra clave se puede cambiar más adelante en el programa. Corresponde a la variable regular de Java.

A continuación se muestran algunos ejemplos:

 var language = "French" language = "alemán" 

Aquí, la languagevariable se reasigna al alemán. Dado que, la variable se declara usando var, este código funciona perfectamente.

 val language = "French" language = "German" // Error

No puede reasignar la variable de idioma a Germanen el ejemplo anterior porque la variable se declara usando val.

Ahora, ya sabe qué son las variables de Kotlin, es hora de aprender los diferentes valores que puede tomar una variable de Kotlin.

Tipos básicos de Kotlin

Kotlin es un lenguaje escrito estáticamente como Java. Es decir, el tipo de variable se conoce durante el tiempo de compilación. Por ejemplo,

 val idioma: Int val marcas = 12,3

Aquí, el compilador sabe que el lenguaje es de tipo Inty las marcas son de tipo Doubleantes del tiempo de compilación.

Los tipos integrados en Kotlin se pueden clasificar como:

  • Números
  • Caracteres
  • Booleanos
  • Matrices

Tipo de número

Los números en Kotlin son similares a los de Java. Hay 6 tipos integrados que representan números.

  • Byte
  • Corto
  • En t
  • Largo
  • Flotador
  • Doble

1. Byte

  • El Bytetipo de datos puede tener valores de -128 a 127 (entero de complemento a dos con signo de 8 bits).
  • Se utiliza en lugar de Intotros tipos de datos enteros para ahorrar memoria si es seguro que el valor de una variable estará dentro de (-128, 127)
  • Ejemplo:
     fun main(args : Array) ( val range: Byte = 112 println("$range") // The code below gives error. Why? // val range1: Byte = 200 )

Cuando ejecute el programa, la salida será:

 112

2. Corto

  • El Shorttipo de datos puede tener valores de -32768 a 32767 (entero de complemento a dos con signo de 16 bits).
  • Se usa en lugar de otros tipos de datos enteros para ahorrar memoria si es seguro que el valor de la variable estará dentro de (-32768, 32767).
  • Ejemplo:
 fun main(args : Array) ( val temperature: Short = -11245 println("$temperature") )

Cuando ejecute el programa, la salida será:

 -11245

3. Int

  • El Inttipo de datos puede tener valores de a (entero de complemento a dos con signo de 32 bits).-231231-1
  • Ejemplo:
 fun main(args : Array) ( val score: Int = 100000 println("$score") )

Cuando ejecute el programa, la salida será:

 100000

Si asigna un número entero entre a a una variable sin especificar explícitamente su tipo, la variable será de tipo. Por ejemplo,-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

Una matriz es un contenedor que contiene datos (valores) de un solo tipo. Por ejemplo, puede crear una matriz que pueda contener 100 valores de Inttipo.

En Kotlin, las matrices están representadas por la Arrayclase. La clase tiene funciones gety set, sizepropiedad y algunas otras funciones miembro útiles.

Para obtener más información sobre las matrices, visite: Kotlin Arrays

Cuerdas Kotlin

En Kotlin, las cadenas están representadas por la Stringclase. Los literales de cadena como "esto es una cadena" se implementan como una instancia de esta clase.

Para obtener más información sobre las cadenas, visite: Kotlin Strings

Lecturas recomendadas

  • Conversión de tipos en Kotlin
  • Moldes inteligentes en Kotlin
  • Tipos que aceptan valores NULL de Kotlin

Articulos interesantes...