Categories: Curso Interactivo

Variables

Share

En esta lección veremos la declaración de variables y los tipos básicos.

En Kotlin puedes declarar las variables de dos formas: de solo lectura con val y mutables con var. Si quieres profundizar más en el tema, visita este enlace.

Para ver todos los tipos básicos visita esta entrada.

String (Cadenas de texto)

Ejercicio 1

Crea una variable llamada holaMundo de solo lectura de tipo String con el valor Hola Mundo.

import org.junit.Assert
import org.junit.Test
import kotlin.reflect.KMutableProperty

//sampleStart

//sampleEnd

class Ejercicio1String {
    @Test
    fun comprobarVariableSoloLectura() {
        Assert.assertFalse(::holaMundo is KMutableProperty<*>)
        Assert.assertEquals(holaMundo, "Hola Mundo")
    }
}

Ejercicio 2

Crea una variable de solo lectura llamada nombre con el valor “Javier", otra llamada apellido con el valor "García", y una variable mutable llamada nombreCompleto que sea una plantilla de string y la inicializas con los valores de las variables antiores para mostrar Javier García.

import org.junit.Assert
import org.junit.Test
import kotlin.reflect.KMutableProperty

//sampleStart

//sampleEnd

class Ejercicio2String {
    @Test
    fun comprobarNombreApellidoNombreCompleto() {
        Assert.assertFalse(::nombre is KMutableProperty<*>)
        Assert.assertEquals(nombre, "Javier")

        Assert.assertFalse(::apellido is KMutableProperty<*>)
        Assert.assertEquals(apellido, "García")

        Assert.assertTrue(::nombreCompleto is KMutableProperty<*>)
        Assert.assertEquals(nombreCompleto, "Javier García")
    }
}

De ahora en adelante, salvo que se indique lo contrario, cuando declares una variable utiliza val.

Char (Caracteres)

Ejercicio 3

Declara una variable de tipo Char llamada letra con el valor A.

import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio3Char {
    @Test
    fun comprobarLetra() {
        Assert.assertTrue(letra is Char)
        Assert.assertEquals(letra, 'A')
    }
}

Int (Números enteros de 32 bits)

Ejercicio 4

Declara una variable llamada edad con cuyo valor sea cualquier número entero.

import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio4Int {
    @Test
    fun comprobarEdad() {
        Assert.assertTrue(edad is Int)
    }
}

Long (Números enteros de 64 bits)

Ejercicio 5

Declara una variable llamada edadDelUniverso del tipo Long con el valor 432043200000000000.

Tip

Puedes utilizar la inferencia de tipo y no decirle explícitamente que es Long. Sin embargo si tienes una variable mutable que al principio es un Int pero en realidad será un Long más adelante cuando le asignes otro valor, para evitar que la inferencia de tipo le asigneInt a la variable, añade L al final del número: 100L

Tip

Puedes usar _ para hacer que el valor sea más fácil de leer: 432_043_200_000_000_000
import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio5Long {
    @Test
    fun comprobarEdadDelUniverso() {
        Assert.assertEquals(edadDelUniverso, 432043200000000000)
        Assert.assertTrue(edadDelUniverso is Long)
    }
}

Float (Números decimales de 32 bits)

Ejercicio 6

Asigna tu altura en una variable llamada altura en metros, es decir, si mides 180 cm utiliza 1,8f.

import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio6Float {
    @Test
    fun comprobarAltura() {
       Assert.assertTrue(altura is Float)
    }
}

Double (Números decimales de 64 bits)

Ejercicio 7

Asigna el valor de pi con esta cantidad decimales: 3.14159265359 a una variable llamada Pi de tipo Double.

Tip

Análogamente a lo que pasaba con Long, aquí puedes utilizar D para indicar que es un Double y poder utilizar la inferencia de tipo en un valor que, en principio, se podría entender como Int.
import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio7Double {
    @Test
    fun comprobarPI() {
        Assert.assertEquals(pi, 3.14159265359, 0.0)
        Assert.assertTrue(pi is Double)
    }
}

Boolean

Ejercicio 8

Declara dos variables de tipo Boolean llamadas cocheRojo y cocheVerde cuyos valores son true y false respectivamente.

import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio8Boolean {
    @Test
    fun comprobarCoches() {
        Assert.assertTrue(cocheRojo)
        Assert.assertFalse(cocheVerde)
    }
}

Conversiones

Aunque hay muchas conversiones diferentes, aquí solo vamos a practicar algunas ya que sin el autocompletado del IDE es bastante tedioso.

Ejercicio 9

Asigna el valor de una variable llamada lados de tipo Int con un número entero cualquiera a una variable llamada ladosTexto de tipo String.

import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Ejercicio9Conversion {
    @Test
    fun comprobarLados() {
        Assert.assertTrue(lados is Int)
        Assert.assertTrue(ladosTexto is String)
    }
}

Ejercicio 10

Crea 3 variables llamadas piTexto de tipo String, piF de tipo Float y piD de tipo Double. A piTexto le asignas el valor 3.14(recuerda que es un String, utiliza comillas), a la piF le asignas el valor de piTexto mediante una conversión a Float. Y a piD le asignas el valor de piF mediante una conversión a Double.

import org.junit.Assert
import org.junit.Test

//sampleStart

//sampleEnd

class Conversion10 {
    @Test
    fun comprobarPI() {
        Assert.assertTrue(piTexto is String)
        Assert.assertEquals(piTexto, "3.14")
        Assert.assertTrue(piF is Float)
        Assert.assertTrue(piD is Double)
    }
}

Soluciones

Puedes comprobar todas las soluciones en el repositorio del curso en GitHub


Enlaces de interés:

Recent Posts

  • Curso Interactivo

Introducción al Curso Interactivo

La mejor forma de aprender algo en esta vida es a base de practicar. Espero…

5 años ago
  • Coroutines

Iniciar una Corrutina

La principal forma de iniciar una corrutina en Kotlin es con el coroutine builder launch…

5 años ago
  • Coroutines

Coroutines

Las coroutines en Kotlin vienen a tratar de solucionar todos los problemas y dificultades que…

5 años ago
  • Funciones Estándar

Resumen Elección de Modismo

Con este esquema te puedes guiar a la hora de elegir el modismo o función…

5 años ago
  • Funciones Estándar

With

El último que queda por ver es with qué en inglés significa "con". Por lo…

5 años ago
  • Funciones Estándar

Run

Con run a diferencia de apply no se devuelve el objeto si no que devuelve…

5 años ago