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.
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") } }
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
.
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') } }
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) } }
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 esLong
. Sin embargo si tienes una variable mutable que al principio es unInt
pero en realidad será unLong
más adelante cuando le asignes otro valor, para evitar que la inferencia de tipo le asigneInt
a la variable, añadeL
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) } }
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) } }
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 conLong
, aquí puedes utilizarD
para indicar que es unDouble
y poder utilizar la inferencia de tipo en un valor que, en principio, se podría entender comoInt
.
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) } }
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) } }
Aunque hay muchas conversiones diferentes, aquí solo vamos a practicar algunas ya que sin el autocompletado del IDE es bastante tedioso.
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) } }
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) } }
Puedes comprobar todas las soluciones en el repositorio del curso en GitHub
Enlaces de interés:
La mejor forma de aprender algo en esta vida es a base de practicar. Espero…
La principal forma de iniciar una corrutina en Kotlin es con el coroutine builder launch…
Las coroutines en Kotlin vienen a tratar de solucionar todos los problemas y dificultades que…
Con este esquema te puedes guiar a la hora de elegir el modismo o función…
El último que queda por ver es with qué en inglés significa "con". Por lo…
Con run a diferencia de apply no se devuelve el objeto si no que devuelve…