LENGUAJE DE PROGRAMACION KOTLIN

Contenido del curso

Instalación de herramientas (Android Studio para Kotlin)

Para desarrollar en Kotlin, la herramienta más comúnmente utilizada es Android Studio, que incluye soporte para Kotlin de forma nativa. Puedes seguir estos pasos para instalarlo:

  1. Descarga Android Studio desde el sitio web oficial de Android: Android Studio.
  2. Sigue las instrucciones de instalación para tu sistema operativo (Windows, macOS, Linux).
  3. Una vez instalado, abre Android Studio y sigue el asistente de configuración para instalar cualquier componente adicional necesario para el desarrollo de aplicaciones Android con Kotlin.

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!

Valores y variables

En Kotlin, las variables son objetos que almacenan valores y tienen un tipo de datos específico. Debes declarar una variable antes de usarla, especificando el tipo de datos que contendrá. Kotlin proporciona dos tipos de variables: variables mutables (cuyos valores pueden cambiarse) y variables inmutables (cuyos valores no pueden cambiarse una vez que se les asigna un valor).

Declaración de Variables

Puedes declarar una variable en Kotlin utilizando las palabras clave val y var:

  • val: Se utiliza para declarar variables inmutables, cuyos valores no pueden cambiarse una vez asignados.
  • var: Se utiliza para declarar variables mutables, cuyos valores pueden cambiarse después de la asignación.
				
					val pi = 3.14159 // variable inmutable
var contador = 0 // variable mutable
				
			
Tipos de Datos en Kotlin

Kotlin tiene tipos de datos básicos similares a otros lenguajes de programación:

  • Int: Representa números enteros.
  • Double: Representa números de punto flotante de doble precisión.
  • Float: Representa números de punto flotante de precisión simple.
  • Boolean: Representa valores booleanos, es decir, true o false.
  • Char: Representa caracteres Unicode.
  • String: Representa una secuencia de caracteres.
  • Any: Es la superclase de todos los tipos de datos en Kotlin.
Tamaño en Memoria

Los tipos de datos en Kotlin tienen un tamaño específico en memoria, que puede variar según la plataforma y la implementación. Los tamaños en memoria típicos son:

  • Int: 4 bytes
  • Double: 8 bytes
  • Float: 4 bytes
  • Boolean: 1 byte
  • Char: 2 bytes
  • String: Depende del tamaño del contenido de la cadena y la codificación Unicode.
				
					val edad: Int = 25
var contador: Int = 0

val pi: Double = 3.14159
var precio: Double = 99.99

val altura: Float = 1.75f
var temperatura: Float = 26.5f

val esMayorDeEdad: Boolean = true
var estaLloviendo: Boolean = false

val inicial: Char = 'A'
var ultimoCaracter: Char = 'Z'

val nombre: String = "Juan"
var mensaje: String = "Hola, ¿cómo estás?"

val cualquierCosa: Any = "Hola"
var cualquierObjeto: Any = 42

				
			

En este ejemplo, edad es una variable inmutable de tipo Int, y nombre es una variable mutable de tipo String. Cuando se imprime el valor de nombre y edad, se muestra en la consola. Luego, el valor de nombre se actualiza y se imprime nuevamente.

Kotlin es un lenguaje estáticamente tipado, lo que significa que el tipo de cada variable debe ser conocido en tiempo de compilación. Esto mejora la seguridad y la eficiencia del código.

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!

Trabajando con variables

Kotlin es un lenguaje de programación estáticamente tipado, lo que significa que debes especificar el tipo de datos de una variable al declararla, o Kotlin lo inferirá automáticamente.

Funciones Aritmeticas

Se utilizan funciones aritméticas y se trabajan con diferentes tipos de datos en Kotlin, demostrando cómo se pueden realizar operaciones y manipulaciones con cada tipo de dato. Esto te proporciona una comprensión básica de cómo trabajar con variables de diferentes tipos en Kotlin.

				
					val suma = 10 + 5 // Resultado: 15
val resta = 10 - 5 // Resultado: 5
val multiplicacion = 10 * 5 // Resultado: 50
val division = 10 / 5 // Resultado: 2
val modulo = 10 % 3 // Resultado: 1

				
			
Ejemplos de Funciones Aritmeticas en Kotlin

Recuerda que todo este contenido se encuentra en el canal de youtube donde tendras alojado todo el contenido demostrativo y no solo escrito.

				
					//Enteros (Int)
val edad: Int = 25
var contador: Int = 0
val sumaEdad = edad + 5 // 25 + 5 = 30

//Números de Punto Flotante (Double)
val pi: Double = 3.14159
var precio: Double = 99.99
val total = precio * 2 // 99.99 * 2 = 199.98

//Números de Punto Flotante (Float)
val altura: Float = 1.75f
var temperatura: Float = 26.5f
val aumento = altura + 0.1f // 1.75 + 0.1 = 1.85

//Valores Booleanos (Boolean)
val esMayorDeEdad: Boolean = true
var estaLloviendo: Boolean = false
val esDiaSoleado = !estaLloviendo // Negación: false

//Caracteres (Char)
val inicial: Char = 'A'
var ultimoCaracter: Char = 'Z'
val siguienteCaracter = inicial + 1 // 65 + 1 = 66 (Código ASCII de 'B')

//Cadenas de Texto (String)
val nombre: String = "Juan"
var mensaje: String = "Hola, ¿cómo estás?"
val saludoCompleto = "$mensaje Mi nombre es $nombre" // "Hola, ¿cómo estás? Mi nombre es Juan"

//Operaciones con Any
val cualquierCosa: Any = "Hola"
var cualquierObjeto: Any = 42
val concatenacion = cualquierCosa.toString() + cualquierObjeto.toString() // "Hola42"

				
			

Funciones

En Kotlin, puedes declarar una función utilizando la palabra clave fun, seguida del nombre de la función, paréntesis que pueden contener los parámetros de entrada y, opcionalmente, el tipo de datos que devuelve la función.

				
					fun saludar() {
    println("¡Hola!")
}

fun sumar(a: Int, b: Int): Int {
    return a + b
}

				
			

En este ejemplo, se han declarado dos funciones:

  • saludar(): Una función sin parámetros ni valor de retorno que imprime “¡Hola!”.
  • sumar(a: Int, b: Int): Int: Una función que toma dos parámetros enteros (a y b) y devuelve un entero como resultado de la suma de a y b.
Llamada de Funciones

Para llamar a una función en Kotlin, simplemente escribe el nombre de la función seguido de los paréntesis.

				
					saludar() // Imprime: ¡Hola!

val resultado = sumar(3, 5) // resultado es igual a 8

				
			

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!

Funciones con parámetros de entrada y salida

Las funciones pueden tener cero o más parámetros como entrada y pueden devolver un valor como resultado. En Kotlin, los tipos de datos de los parámetros y el tipo de datos devuelto pueden ser explícitamente declarados.

				
					fun multiplicar(a: Int, b: Int): Int {
    return a * b
}
				
			
Funciones de una Sola Línea

En Kotlin, si una función devuelve un único valor, puedes escribir la función en una sola línea.

				
					fun restar(a: Int, b: Int) = a - b

				
			
Funciones como Expresiones

En Kotlin, las funciones pueden tratarse como expresiones y asignarse a variables, pasarlas como argumentos a otras funciones o incluso devolverlas desde otras funciones.

				
					val miFuncion = ::sumar
val resultado = miFuncion(10, 20) // resultado es igual a 30

				
			
Funciones de Orden Superior

Kotlin admite funciones de orden superior, que son funciones que pueden aceptar otras funciones como parámetros y/o devolver funciones como resultado.

				
					fun operar(a: Int, b: Int, operacion: (Int, Int) -> Int): Int {
    return operacion(a, b)
}

val resultadoSuma = operar(10, 5, ::sumar) // resultadoSuma es igual a 15
val resultadoResta = operar(10, 5, ::restar) // resultadoResta es igual a 5

				
			
Funciones Anonimas y Lambdas

En Kotlin, puedes crear funciones anónimas y lambdas, que son funciones sin nombre que pueden ser utilizadas para definir comportamientos específicos en línea.

				
					val cuadrado: (Int) -> Int = { x -> x * x }

val lista = listOf(1, 2, 3, 4, 5)
val cuadrados = lista.map { it * it } // cuadrados es igual a [1, 4, 9, 16, 25]

				
			

Estos son los conceptos básicos sobre funciones en Kotlin. Las funciones son componentes fundamentales de cualquier programa Kotlin y son utilizadas para organizar y reutilizar código de manera eficiente.

Condicionales if, else, for, while, when

Conficionales If – Else

Los condicionales if y else se utilizan para tomar decisiones basadas en condiciones booleanas. En Kotlin, la sintaxis básica es la siguiente:

				
					val edad = 18

if (edad >= 18) {
    println("Eres mayor de edad")
} else {
    println("Eres menor de edad")
}

				
			

En este ejemplo, si la variable edad es mayor o igual a 18, se imprime “Eres mayor de edad”; de lo contrario, se imprime “Eres menor de edad”.

Estructura de control de flujo for

El bucle for se utiliza para iterar sobre una secuencia de elementos, como rangos de números o colecciones de datos. En Kotlin, puedes iterar de la siguiente manera:

				
					for (i in 1..5) {
    println(i)
}
				
			

Esto imprimirá los números del 1 al 5.

Estructura de control de flujo while

El bucle while se utiliza para repetir una o más instrucciones mientras una condición sea verdadera. En Kotlin, la sintaxis básica es la siguiente:

				
					var contador = 0

while (contador < 5) {
    println("El contador es $contador")
    contador++
}

				
			

Este bucle imprimirá “El contador es X” mientras el valor de contador sea menor que 5.

Estructura de control de flujo when

La expresión when es similar a un switch en otros lenguajes de programación y se utiliza para evaluar una expresión y ejecutar un bloque de código correspondiente al primer caso que coincida. En Kotlin, se ve así:

				
					val opcion = 2

when (opcion) {
    1 -> println("Opción 1 seleccionada")
    2 -> println("Opción 2 seleccionada")
    3 -> println("Opción 3 seleccionada")
    else -> println("Opción no válida")
}

				
			

En este ejemplo, si opcion es 2, se imprimirá “Opción 2 seleccionada”.

Estas son las estructuras de control de flujo básicas en Kotlin que te permiten tomar decisiones y repetir bloques de código según condiciones específicas.

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!

Ejercicios if, else, for, while, when

Verificar si un numero es positivo, negativo o cero

Escribe un programa que solicite al usuario ingresar un número y luego determine si es positivo, negativo o cero.

				
					fun main() {
    println("Ingrese un número:")
    val numero = readLine()!!.toInt()

    if (numero > 0) {
        println("El número es positivo")
    } else if (numero < 0) {
        println("El número es negativo")
    } else {
        println("El número es cero")
    }
}
				
			
Imprimir numeros pares del 1 al 10

Utiliza un bucle for para imprimir los números pares del 1 al 10.

				
					fun main() {
    for (i in 1..10) {
        if (i % 2 == 0) {
            println(i)
        }
    }
}

				
			
Suma de los primeros 5 numeros naturales

Escribe un programa que calcule la suma de los primeros 5 números naturales utilizando un bucle while.

				
					fun main() {
    var suma = 0
    var contador = 1

    while (contador <= 5) {
        suma += contador
        contador++
    }

    println("La suma de los primeros 5 números naturales es: $suma")
}

				
			
Determinar el dia de la semana

Escribe un programa que solicite al usuario ingresar un número del 1 al 7 y luego imprima el día de la semana correspondiente utilizando la estructura when.

				
					fun main() {
    println("Ingrese un número del 1 al 7:")
    val numero = readLine()!!.toInt()

    when (numero) {
        1 -> println("Lunes")
        2 -> println("Martes")
        3 -> println("Miércoles")
        4 -> println("Jueves")
        5 -> println("Viernes")
        6 -> println("Sábado")
        7 -> println("Domingo")
        else -> println("Número no válido")
    }
}

				
			

Nulabilidad

La nulabilidad es un concepto importante en Kotlin que se refiere a la capacidad de una variable para contener un valor nulo. En Kotlin, el sistema de tipos está diseñado para evitar errores de referencia nula (NullPointerException), que son comunes en otros lenguajes de programación como Java.

Tipos de Datos y Nulabilidad

En Kotlin, un tipo de datos por defecto no puede contener un valor nulo. Para permitir la nulabilidad, debes especificar que un tipo de dato puede ser nulo añadiendo un signo de interrogación (?) al final del tipo. Por ejemplo:

				
					val nombre: String? = null // String nullable
val edad: Int? = null // Int nullable

				
			

En estos ejemplos, nombre y edad pueden contener un valor nulo (null) además de valores válidos de tipo String e Int, respectivamente.

Operaciones con Tipos de Datos Nulos

Para trabajar con variables nulas, Kotlin proporciona operadores seguros (?.) y operadores de elvis (?:).

Operador Seguro (Safe Call Operator – ?.)

El operador seguro (?.) se utiliza para realizar una llamada a un método o acceder a una propiedad solo si la variable no es nula. Si la variable es nula, la expresión completa devuelve null.

				
					val longitud: Int? = nombre?.length

				
			

En este ejemplo, longitud contendrá la longitud de nombre si nombre no es nulo; de lo contrario, longitud será null.

Operador Elvis (?:)

El operador elvis (?:) se utiliza para proporcionar un valor de respaldo en caso de que una expresión sea nula.

				
					val longitudNombre: Int = nombre?.length ?: -1

				
			

En este ejemplo, si nombre es nulo, longitudNombre será -1; de lo contrario, será igual a la longitud de nombre.

Verificacion de Nulabilidad

También puedes realizar una verificación explícita de nulabilidad utilizando una expresión if.

				
					if (nombre != null) {
    println("El nombre es: $nombre")
} else {
    println("El nombre es nulo")
}

				
			

En este ejemplo, si nombre no es nulo, se imprime el nombre; de lo contrario, se imprime que el nombre es nulo.

La nulabilidad en Kotlin es una característica poderosa que ayuda a evitar errores comunes relacionados con referencias nulas, lo que hace que el código sea más robusto y seguro.

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!

Arrays y listas

Kotlin proporciona las clases Array y List para trabajar con conjuntos de elementos.

En Kotlin, puedes trabajar con arrays y listas para almacenar colecciones de elementos. Ambas estructuras de datos son útiles para almacenar múltiples valores, pero tienen algunas diferencias en su funcionamiento y uso.

Arrays

Un array es una estructura de datos que almacena una colección de elementos del mismo tipo en una única variable. En Kotlin, puedes crear arrays utilizando la función arrayOf() o la función Array().

Creación de Arrays:

				
					// Utilizando la función arrayOf()
val numeros = arrayOf(1, 2, 3, 4, 5)

// Utilizando la función Array()
val frutas = Array(3) { i -> "Fruta $i" }

				
			

En el primer ejemplo, se crea un array de números enteros utilizando la función arrayOf(). En el segundo ejemplo, se crea un array de cadenas utilizando la función Array() y se inicializa con valores utilizando una expresión lambda.

Acceso a Elementos del Array:

				
					println(numeros[0]) // Imprime el primer elemento del array 'numeros'
println(frutas[1]) // Imprime el segundo elemento del array 'frutas'

				
			

Modificación de Elementos del Array:

				
					numeros[2] = 10 // Modifica el tercer elemento del array 'numeros'
frutas[0] = "Manzana" // Modifica el primer elemento del array 'frutas'

				
			
Listas

Una lista es una estructura de datos que puede contener una colección de elementos del mismo o de diferentes tipos. En Kotlin, puedes crear listas utilizando la clase List o la clase MutableList.

Creación de Listas:

				
					// Utilizando la clase List
val colores = listOf("Rojo", "Verde", "Azul")

// Utilizando la clase MutableList
val nombres = mutableListOf("Ana", "Juan", "María")

				
			

Acceso a Elementos de la Lista:

				
					println(colores[0]) // Imprime el primer elemento de la lista 'colores'
println(nombres[2]) // Imprime el tercer elemento de la lista 'nombres'

				
			

Modificación de Elementos de la Lista:

				
					colores[1] = "Amarillo" // Modifica el segundo elemento de la lista 'colores'
nombres.add("Pedro") // Agrega un nuevo elemento al final de la lista 'nombres'

				
			
Diferencias Clave
  • Los arrays tienen un tamaño fijo que se define al momento de su creación, mientras que las listas pueden crecer o disminuir de tamaño dinámicamente.
  • Los elementos de un array deben ser del mismo tipo, mientras que una lista puede contener elementos de diferentes tipos.
  • Las listas proporcionan más funciones útiles, como agregar, eliminar o modificar elementos, mientras que los arrays son más simples en su funcionalidad.

En resumen, tanto los arrays como las listas son estructuras de datos útiles en Kotlin, y la elección entre ellas depende de los requisitos específicos de tu aplicación y de la flexibilidad que necesites en cuanto al tamaño y tipo de elementos que contendrá la colección.

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!

Te ha servido y gustado?
Apoyame con tu suscripcion a mi canal de YouTube

Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!