Saltearse al contenido

hello_world.kotlin

🔹 Tipos de Datos

Kotlin es un lenguaje fuertemente tipado con inferencia de tipos.

  • val declara variables inmutables (como const en otros lenguajes).
  • var permite reasignaciones.
  • Kotlin maneja null safety con ? y !!.

Strings

val saludo: String = "Hola, Kotlin!"
val nombre = "John" // Inferencia de tipo
println("$saludo $nombre")

Numbers

val entero: Int = 42
val decimal: Double = 3.14
val flexible: Number = 100
println(entero + decimal) // 45.14

Booleans

val esVerdadero: Boolean = true
val esFalso = false

Null Safety

var textoOpcional: String? = null // Puede ser null
val textoSeguro = textoOpcional ?: "Valor por defecto"
val textoForzado = textoOpcional!! // Falla si es null
Tipos de datos y operadores
val entero: Int = 42
val decimal: Double = 3.14
val flexible: Number = 100
val esVerdadero: Boolean = true
val texto: String = "Hola, Kotlin!"
val lista: List<Int> = listOf(1, 2, 3, 4)
val conjunto: Set<String> = setOf("A", "B", "C")
val mapa: Map<String, Any> = mapOf("nombre" to "John", "edad" to 20)
var dinamico: Any = "Puedo cambiar de tipo"

🔹 Estructuras de Control

Condicionales

val edad = 20
if (edad >= 18) {
println("Mayor de edad")
} else {
println("Menor de edad")
}

Switch (when)

val opcion = 2
when (opcion) {
1 -> println("Opción 1")
2 -> println("Opción 2")
else -> println("Opción no válida")
}
otros ejemplos de when
val resultado = when (opcion) {
1 -> "uno"
2 -> "dos"
3 -> "tres"
else -> "otro"
}
println(resultado)

🔹 Funciones en Kotlin

fun saludo() {
println("Hola desde una función!")
}
fun suma(a: Int, b: Int): Int = a + b
saludo()
println(suma(3, 5))

Parámetros opcionales

fun saludar(nombre: String, apellido: String = "Desconocido") {
println("Hola, $nombre $apellido")
}

🔹 Colecciones (List, Set, Map)

Listas

val lista = listOf("Kotlin", "Java", "Swift")
println(lista[0])

Sets (sin duplicados)

val conjunto = setOf("Kotlin", "Swift", "Kotlin")
println(conjunto)

Mapas (clave-valor)

val mapa = mapOf("nombre" to "Carlos", "edad" to 25)
println(mapa["nombre"])

🔹 Bucles en Kotlin

For-i

for (i in 0 until lista.size) {
println(lista[i])
}

For-in

for (item in lista) {
println("📌 $item")
}

While y Do-While

var contador = 0
while (contador < 3) {
println("Iteración $contador")
contador++
}
do {
println("Iteración $contador")
contador++
} while (contador < 6)

🔹 OOP en Kotlin

class Persona(val nombre: String, val edad: Int) {
fun presentarse() {
println("Hola, soy $nombre y tengo $edad años.")
}
}
val p = Persona("Carlos", 30)
p.presentarse()

🔹 Enumeraciones

enum class Lenguajes { KOTLIN, JAVA, SWIFT }
val lenguaje = Lenguajes.KOTLIN
println("Lenguaje seleccionado: $lenguaje")

🔹 Manejo de Excepciones

try {
val resultado = 10 / 0
} catch (e: Exception) {
println("❌ Error: ${e.message}")
} finally {
println("Este bloque siempre se ejecuta")
}

🔹 Programación Asíncrona en Kotlin (Coroutines)

import kotlinx.coroutines.*
suspend fun obtenerDatos() {
println("⌛ Cargando datos...")
delay(2000)
println("✅ Datos cargados")
}
fun main() = runBlocking {
obtenerDatos()
}

🔹 Mixins en Kotlin (interface con default methods)

interface Caminante {
fun caminar() {
println("Estoy caminando...")
}
}
class Persona : Caminante
val p = Persona()
p.caminar()

🔹 Extensiones en Kotlin

fun String.enMayusculas(): String = this.uppercase()
println("kotlin".enMayusculas()) // "KOTLIN"

Hello, Kotlin! 🚀