Contenido del curso
Configuración del entorno
Hola mundo Kotlin
- 8

Estructura y Funcionalidad de Archivos en un Proyecto Kotlin
03:20 min - 9

Variables en Kotlin: Lectura, Escritura y Constantes
06:30 min - 10

Tipos de Variables y Operaciones en Kotlin
12:31 min - 11

Tipos de Datos y Objetos en Kotlin: Ventajas y Funcionalidades
03:40 min - 12

Operadores y Funciones en Kotlin: Uso y Extensión
01:27 min - 13

Programación Funcional en Kotlin: Paradigmas y Variables Inmutables
02:54 min - 14

Estructuras de Control: Uso de IF en Kotlin
11:55 min - 15

Estructura de Control "When" en Kotlin: Uso y Ejemplos Prácticos
14:20 min
Conceptos básicos de Kotlin
- 16

Bucle while y do-while en Kotlin: Condicionales y Ejecución
06:23 min - 17

Ciclo For y Funciones de Extensión en Kotlin
13:10 min - 18

Null Safety en Kotlin: Evita Errores por Referencias Nulas
04:52 min - 19

Gestión de Tipos Nulables en Kotlin y Buenas Prácticas
06:17 min - 20

Manejo de Excepciones en Kotlin: Try-Catch y Lanzamiento de Errores
10:29 min - 21

Uso del Operador Elvis en Kotlin para Nulables
02:36 min
Collections en Kotlin
Libera el potencial de las funciones
- 26

Creación de funciones propias en Kotlin
03:30 min - 27

Creación de Funciones en Kotlin: Uppercase y Lowercase Aleatorios
11:23 min - 28

Parámetros Nombrados y por Defecto en Funciones de Programación
05:06 min - 29

Creación y Uso de Lambdas en Kotlin
08:50 min - 30

Funciones de Alto Orden y Lambdas en Kotlin
07:33 min
Scope functions
- 31

Uso de la función let en Kotlin para variables nulas
03:28 min - 32

Uso de la función "with" en Kotlin para manejar propiedades
02:10 min - 33

Uso de la Función Run para Operaciones en Listas en Kotlin
Viendo ahora - 34

Uso de la función apply para manejar tipos anulables en Kotlin
04:28 min - 35

Uso de la Función Also en Kotlin para Encadenamiento de Operaciones
02:18 min
Proyecto: Bola 8 mágica
Uso de la Función Run para Operaciones en Listas en Kotlin
Resumen
Cuando trabajas con listas u objetos obtenidos de un servidor o una librería, muchas veces necesitas transformarlos antes de utilizarlos. La función run en Kotlin es una scope function diseñada exactamente para eso: ejecutar un bloque de operaciones sobre una variable y devolver el resultado listo para usar.
¿Qué es la función run y cómo se utiliza?
La función run permite ejecutar una serie de operaciones inmediatamente después de declarar o recibir una variable. Dentro del bloque de run, tienes acceso directo al objeto mediante this, lo que facilita encadenar transformaciones sin crear variables intermedias.
Este patrón resulta especialmente útil cuando:
- Recibes datos de una llamada a un servidor.
- Obtienes resultados de una librería externa.
- Necesitas filtrar, modificar o preparar una colección antes de pasarla a otra función.
¿Cómo filtrar elementos de una lista con run?
Para ilustrar su funcionamiento, se parte de una lista mutable de móviles [0:24]:
kotlin val moviles = mutableListOf( "Google Pixel 2 XL", "Google Pixel 4a", "Huawei Red 9", "Xiaomi Mi A3" )
A continuación se aplica la función run para eliminar todos los móviles que contengan la palabra Google [0:47]:
kotlin val resultado = moviles.run { removeIf { movil -> movil.contains("Google") } this } println(resultado)
El resultado impreso será una lista que solo contiene Huawei Red 9 y Xiaomi Mi A3.
¿Qué hace removeIf y contains en este contexto?
- removeIf: recorre la colección y elimina cada elemento que cumpla la condición indicada. Opera directamente sobre la lista mutable, por lo que no necesitas reasignarla.
- contains: devuelve
trueofalsedependiendo de si el string evaluado incluye el texto proporcionado. Funciona como la condición que alimenta aremoveIf.
Al combinar ambas funciones dentro de run, logras un bloque limpio donde filtras los datos y luego devuelves la lista modificada con this [1:09].
¿Cuándo conviene usar run frente a otras scope functions?
A diferencia de let, que recibe el objeto como parámetro it, run lo expone como this. Esto lo hace más cómodo cuando necesitas llamar varios métodos del objeto sin repetir su nombre. Comparado con with, la ventaja de run es que se encadena directamente al objeto, lo que mejora la legibilidad en cadenas de transformaciones.
Un escenario práctico: imagina que obtienes una lista de productos desde una API. Antes de mostrarla en pantalla, necesitas eliminar los descontinuados y ordenar por precio. Con run puedes agrupar esas operaciones en un solo bloque y obtener el resultado final listo para tu interfaz.
¿Qué valor devuelve la función run?
El bloque de run devuelve la última expresión evaluada. En el ejemplo se retorna this, es decir, la propia lista ya modificada. Sin embargo, podrías devolver cualquier otro valor, como el tamaño de la lista o un mensaje formateado. Esta flexibilidad la convierte en una herramienta versátil dentro del ecosistema de scope functions de Kotlin.
Si ya dominas with y let, incorporar run a tu repertorio te permitirá escribir código más expresivo y organizado. ¿Has encontrado algún caso donde prefieras run sobre las demás scope functions? Comparte tu experiencia en los comentarios.