¿Quieres ser desarrollador de Kotlin?
¡Estás en el lugar correcto!
Este libro te tomará por los fundamentos de Kotlin, gentilmente introduciendo los conceptos principales del lenguaje, para ayudarte a ser un competente desarrollador Kotlin. Incluso si eres un desarrollador más experimentado, es importante saber los fundamentos para establecer una sólida fundación de entendimiento, para que puedas ser lo más efectivo posible.
Tu aventura comienza aquí en el capítulo 1, donde cubriremos lo básico de variables, expresiones y tipos.
¡Hagámoslo!
Introducción a las variables
Este es un círculo.
Miles de años en el pasado, un griego llamado Arquímedes descubrió como medir el largo de la parte de afuera de un círculo, llamado la circunferencia. Tu probablemente recuerdes la ecuación cuando estabas en el colegio…
“La circunferencia de un círculo es igual a dos multiplicado por π multiplicado por el radio del círculo”
En la ecuación arriba la letra r
no es un número por si solo. Esa letra representa el radio, un número que mide la distancia entre el centro del círculo y el borde de el mismo.
Nosotros vamos a llamar r
una variable, porque el radio puede variar dependiendo el tamaño del círculo. En otras palabras, la variable r
no es un número por sí solo, es algo así como un “balde” que contiene un número – cualquier número.
Las variables no son solo para algebra y geometría. Ellas también son usadas todo el tiempo en programación, donde sirven para un solo propósito: contener valores. En Kotlin, tu puedes crear una variable y colocar un número en ella, por ejemplo:
var r = 5.2
Este código está haciendo dos cosas en una línea.
- Declaración – Cuando escribimos
var r
, estamos declarando una variable llamadar
. Puedes pensar que declarando una variable es como crear un balde.- Asignación – Cuando escribimos
r = 5.2
, estamos asignando el valor5.2
a la variabler
. En otras palabras, colocamos el número5.2
en el balde.Vamos a dividir las tres partes de esta línea de código.
En este código…
var
es una palabra reservada que dice a Kotlin crea una variable.r
es el nombre de la variable. Tú puedes también referirte a él como el identificador de la variable.- El número
5.2
es el valor de la variable que está siendo asignada.
var
es una de las muchas palabras claves que vamos a ver cuándo sigamos aprendiendo Kotlin. Lo importante que hay que recordar acerca de estas palabras claves que no pueden ser usadas para nombrar variables. Por ejemplo, tú no puedes usar var
como el nombre de una variable:
var var = 5
ErrorVamos a ver más variables en futuros capítulos.
Reasignación de Variables
Como notamos anteriormente, en la ecuación 2πr, la variable
r
puede representar diferentes números en diferentes situaciones.En Kotlin, si tú decides que quieres que
r
represente un número diferente, tú puedes reasignarlo, como muestra en la segunda línea de código.var r = 5.2 r = 6.7
Cuando reasignamos esta variable, nosotros no necesitamos usar la palabra clave
var
de nuevo, porque la variable fue declarada en la primera línea.Variables que no pueden ser Reasignadas
Veamos de nuevo la ecuación de la circunferencia:
La letra griega
π
(pronunciada “pi”) es muy diferente a la variabler
. Mientrasr
puede guardar cualquier número en él,π
solo tiene un valor específico, el cual abreviamos como 3.14.En la misma manera cuando programamos en Kotlin, hay momentos en que no queremos que una variable cambie.
En esos casos, en vez declararlo con
var
, lo declaras conval
, de esta manera:val π = 3.14
Ahora, si tratas de reasignar
π
, vas a tener un errorval π = 3.14 π = 1.23
ErrorUna vez que pones algo en este balde, ¡nunca puedes reemplazarlo!
Declarando tus variables con
val
es una buena manera de garantizar que no cambies el valor de algo que no debería ser cambiado. De hecho, es una buena idea empezar siempre conval
, y cambiar avar
solamente cuando es absolutamente necesario.Nombrar Variables
Ha sido divertido usar la letra
π
en nuestro código, pero a menos que vivas en Grecia probablemente no tengas esa letra en el teclado. A partir de ahora, vamos a hacer nuestra vida más fácil nombrándolapi
. También en vez der
vamos a llamarloradio
, de tal manera que si otros desarrolladores vienen a ayudar ellos sabe exactamente lo que esa variable representa – no queremos que otros se pongan a adivinar el significado de la letrar
.Algunas veces necesitamos usar más de una palabra para los identificadores de variables. En Kotlin, es costumbre empezar la primera palabra en minúscula y hacer las demás palabras en mayúscula como se muestra aquí:
var radioDelCirculo = 5.2
Ahora que tienes idea de lo básico para declarar y asignar variables, podemos empezar asignando más de números simples – podemos asignar cálculos más complejos, como la ecuación de la circunferencia. Vamos a profundizar en las expresiones.
Expresiones y Declaraciones
Vamos a mirar la ecuación de la circunferencia otra vez.
Ya habíamos creado una variable para
pi
y una variable para elradio
, ahora necesitamos que Kotlin haga un poco de matemáticas para nosotros, y podamos sacar el valor de la circunferencia de cualquier círculo sin importar cuan grande es el círculo.Lo que tenemos que hacer ahora es multiplicar
2
,pi
y elradio
. En Kotlin como en la mayoría de los lenguajes, multiplicación no se representa con unax
, se representa con un*
, entonces ahora nuestro código luce así:var radio = 5.2 val pi = 3.14 val circunferencia = 2 * pi * radio
Hasta ahora hemos asignado simple valores como
5.2
y3.14
. Este es la primera vez que asignamos algo más complejo:2 * pi * radio
.Cuando Kotlin ve esto, simplemente calcula el resultado para ti – multiplica
2
vecespi
por elradio
y luego toma el resultado y lo asigna a la variable llamadacircunferencia
. En este caso (con un radio de5.2
), lacircunferencia
es igual a32.656
.Ahora
2 * pi * radio
puede ser calculado a un valor como este, podemos decir de que es evaluado. Código que puede ser evaluado se llama una expresión. Aquí tenemos unos ejemplos:
2 + 3
2 * pi * r
pi * r * r
Variables by themselves are also expressions - they evaluate to whatever value they hold:
radio
pi
Cuando escribes un número a mano, es llamado un número literal. Literales son también expresiones – ellos se evalúan así mismos. Aquí tienes unos ejemplos:
2
5.2
3.14
Todos estos ejemplos pueden evaluarse a algún valor. Por otro lado, cuando tienes una línea o líneas de código que no se evalúa a un valor es llamado declaración.
Rule: Si asignas varias líneas de código a una variable, es una expresión. De lo contrario es una declaración.
Vamos a aplicar esta regla a la primera expresión de cada una de las líneas de estas tres listas de arriba (
2 + 3
,radio
, y2
). Las partes resaltadas abajo son expresiones:val a = 2 + 3 val b = radio val c = 2
Como todas estas pueden ser asignadas a una variable, son llamadas expresiones.
La única declaración que hemos visto hasta ahora es la declaración de asignación como
val pi = 3.14
. Aplicar nuestra regla general a una declaración de tarea parece confuso, por supuesto, porque estamos usando una asignación en otra asignación (¡ay!)val a = val pi = 3.14
ErrorSi tratas de hacer esto, Kotlin te da un mensaje de error bien claro: “Expecting an expression” o “Esperando una Expresión”. Si ves este mensaje de error, significa que has tratado de usa una declaración cuando Kotlin quería una expresión.
La distinción entre declaraciones y expresiones es importante a medida que aprendes Kotlin, y vamos a usarlo bastante a menudo en este libro.
Hasta este momento hemos usado literales o expresiones complejas, solo asignando números a variables. ¡Pero hay muchas cosas diferentes que variables pueden contener¡ Vamos a explorar algunas de esas cosas a continuación.
Tipos: Diferentes tipos de valores
En Kotlin, diferentes variables pueden contener diferentes tipos de valores. El tipo de valor de una variable contiene es llamado tipo.
Veamos de nuevo las variables
radio
ypi
:var radio = 5.2 val pi = 3.14
En este caso, ambos
radio
ypi
representan números que tiene un punto decimal el cual es un tipo que Kotlin lo llamaDouble
. Si quieres, pudieses también decirle a Kotlin el tipo de la variable tú mismo, de la siguiente manera:var radio: Double = 5.2 val pi: Double = 3.14
Cuando hacemos esto, estamos especificando explícitamente el tipo de la variable.
Muy a menudo no necesitamos hacer esto. Kotlin hace lo mejor posible por inferir el tipo basado en lo que sea le estamos asignado. Este proceso es llamado inferencia de tipos.
Entonces cuando escribimos esto…
var radio = 5.2
…entonces le decimos a Kotlin que
5.2
es unDouble
, y automáticamente usa el tipoDouble
en elradio
.En adición a
Double
, hay más tipos básicos que sería bueno saber. Demos una mirada a ellos en este momento.Integers (Enteros)
Hasta ahora hemos aprendido números que tienen punto decimal en ellos, como
5.2
y3.14
. Pero también puedes usar un número que note tenga punto decimal, como solo5
y3
.Este tipo de números son llamados Integers, y en Kotlin el tipo para un Integer es llamado de manera abreviada
Int
. Aquí está un ejemplo de cómo crear una variable Integer:val numeroDePerros: Int = 3
Booleans
A veces tú quieres una variable contenga un valor que pueda ser prendido o apagado, o verdad o falso, etc.
En esos casos, tu necesitas una variable de tipo
Boolean
.val esLaTierraRedonda: Boolean = true val esLaTierraPlana: Boolean = false
¿Por qué se llama
Boolean
?Es llamada en nombre de George Boole creador de una rama del algebra que trabaja con valores de verdadero y falso en vez de números en el siglo XIX.
Impresionante.
Strings (Cadenas)
Tú también puedes almacenar texto en una variable. La palabra elegante del programador para esto es cadena, porque es un montón de caracteres – como letras, números, y símbolos “unidos” juntos:
En Kotlin, el tipo para cadenas es llamado
String
, y tú puedes crear una variableString
de la siguiente manera:val texto: String = "Esto es una cadena"
Otros Tipos
Estos son los tipos de variable más comunes. A medida que continuamos con esta serie, vamos a descubrir como crear nuestros propios tipos – clases – lo cual es basado en estos tipos básicos que acabamos de ver.
Tipos y Reasignación
En Kotlin, los tipos de cada variable son establecidos cuando escribes el código, y su tipo nunca cambia (a menos que reescribas el código). Esto es porque llamamos esto static typing. Una vez que la variable ha sido declarada con un tipo particular, no otro tipo puede ser usado en dicha variable. Por ejemplo, si creamos una variable de tipo
Int
, no podemos después asignarle un valor de tipoString
.var numeroDePerros: Int = 5 numeroDePerros = "cinco"
ErrorEn capítulos futuros, vamos a ver como static typing se desarrolla en mas formas que simplemente reasignar variables. Veremos como algunos tipos pueden ser subtipos.
Nos estamos adelantando – ¡por ahora terminemos el capítulo!
Resumen
En este capítulo, aprendimos:
- Variables
- Usar
var
para variables que pueden ser reasignadas.- Usar
val
para variables que son de lectura (read-only).- Expresiones y Sentencias
- Expresiones pueden ser evaluadas a un valor.
- Sentencias no pueden ser evaluadas a un valor.
- Puedes asignar varias líneas de código a una variable para ver si es una. sentencia o una expresión.
- Tipos Básicos
- Tipos para números como
Double
eInt
.- El tipo
Boolean
para valorestrue
ofalse
.- El tipo
String
para valores de textoAhora que tenemos una idea de lo que son las variables, es tiempo de ponerlas juntas en diferentes maneras. ¡Estén atentos al capítulo 2, donde aprenderemos todo sobre las funciones en Kotlin!