You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

2 Días
12 Hrs
40 Min
48 Seg

Ciclos

16/37
Resources

How does the for loop work in Kotlin?

The for loop in Kotlin is a controlled repeating structure used to iterate over elements within a list. Unlike other languages such as Java, Kotlin simplifies the use of the for loop, allowing you to maintain clean and elegant code. Let's see how to implement this functionality.

How to create a list in Kotlin?

Before employing the for loop, we need to understand how to create a list in Kotlin. A list is a data structure that cannot be modified once it is created. You can build a list with the listOf function as follows:

val listFruitslist = listOf("apple", "pear", "raspberry", "peach").

What is the for loop and how is it used?

The for loop allows you to execute a block of code for each element in a list. The basic syntax of the for loop in Kotlin is:

for (fruit in listOfFruits) { println("I'm going to eat a fruit named $fruit")}

In this code snippet, fruit acts as a variable that represents each element of listOfFruits one by one.

What is the foreach function and how is it different?

The forEach function is a list extension in Kotlin used to further simplify the for loop. It allows you to execute operations more concisely by using anonymous functions, resulting in more compact code.

Creating and using foreach

Using forEach is simple and optimal:

listFruits.forEach { fruit -> println("Today I am going to eat a new fruit named $fruit")}

Here, forEach traverses through each element of listFruits, executing the provided code block.

How to transform lists with map in Kotlin?

The map function is a powerful tool when you want to transform each element of a list into a new value, with each result stored in a new list.

Converting string list to integer list

Using map is useful if, for example, you want to know the character length of each fruit in the list:

val fruitCharacters = fruitList.map { fruit -> fruit.length}

This creates a new list, fruitCharacters, containing the length of each string in fruitList.

What is the filter function and how is it used?

The filter function is used in Kotlin to select items from a list based on a specific condition. This functionality is essential for debugging and selecting relevant data from a list.

Filtering the list according to condition

Let's imagine that we want to filter fruits that have more than five characters:

val filteredList = fruitCharacters.filter { length -> length > 5}

In the above example, filteredList will contain only values of length greater than five. This illustrates how filter helps to refine lists efficiently.

Recommendations for further learning Kotlin

It is crucial to continue exploring and practicing with these powerful Kotlin functions to develop a deeper understanding. Kotlin offers a variety of extension functions such as map and filter that not only simplify the code but also enhance its functionality. Keep practicing and take your programming skills to the next level!

Contributions 26

Questions 4

Sort by:

Want to see more contributions, questions and answers from the community?

PARA QUIENES QUIERAN TOMAR APUNTES MAS FACIL

Dentro de ese proyecto 1, en la carpeta main, dan click derecho en la carpeta Kotlin y agregan un nuevo archivo .kt y lo nombran segun el tema, con eso copian los ejemplos y en esos mismos archivos comentan los apuntes





Pienso que está clase perfectamente pudo haber sido 3 diferentes clases. Ya que se mencionan conceptos que no se han mencionado antes como ‘funciones anónimas’ (Lambdas) y otras operaciones usando listas y lambdas como ‘map’ o ‘filter’. Que para una persona que tiene experiencia previa en Java no es un problema, pero para alguien que recién empieza con Kotlin podría ser confuso

La Función map()
La función de orden superior map{ } te permite aplicar una función sobre todos los elementos de una colección con el fin de una nueva colección con el cálculo final.
Función filter()
La función de extensión filter te permite filtrar los ítems de una colección de elementos a partir de un predicado como argumento. El predicado afirma o niega expresiones sobre el sujeto (cada elemento de la colección). Si un elemento satisface al predicado, entonces es incluido en el resultado final.

Ejemplos en code usados para explicar los ciclos:

fun main(args: Array<String>) {

    /* for// */

    val listaDeFrutas: List<String> = listOf("Manzana","Pera","Frambuesa","Durazno")
    for (fruta in listaDeFrutas) {
        println("Hoy voy a comerme una fruta llamada $fruta")
    }
    listaDeFrutas.forEach {
        fruta -> println("Hoy voy a comerme una fruta nueva llamada $fruta")
    }


    /* map// */

    val caracteresDeFruta: List<Int> = listaDeFrutas.map {
        fruta -> fruta.length
    }
    println(caracteresDeFruta)


    /* filter// */

    var listaFiltrada = caracteresDeFruta.filter {
        largoDeFruta -> largoDeFruta > 5
    }
    println(listaFiltrada)

}

La función map en Kotlin se utiliza para transformar los elementos de una colección en una nueva colección, aplicando una función a cada uno de los elementos.

La función map recibe como argumento una función que toma como parámetro un elemento de la colección y devuelve un nuevo elemento. La función map aplica esta función a cada elemento de la colección original y crea una nueva colección con los nuevos elementos devueltos por la función.

Aquí hay un ejemplo de cómo usar map en Kotlin:

val numeros = listOf(1, 2, 3, 4, 5)
val numerosDobles = numeros.map { it * 2 }
println(numerosDobles) // Imprime "[2, 4, 6, 8, 10]" 

La función filter en Kotlin se utiliza para filtrar los elementos de una colección según una determinada condición y devolver una nueva colección que contenga sólo los elementos que cumplan dicha condición.

La función filter recibe como argumento una función que toma como parámetro un elemento de la colección y devuelve un valor booleano que indica si el elemento debe ser incluido o no en la nueva colección. La función filter aplica esta función a cada elemento de la colección original y crea una nueva colección que contiene sólo los elementos que cumplan la condición especificada.

Aquí hay un ejemplo de cómo usar filter en Kotlin:

val numeros = listOf(1, 2, 3, 4, 5)
val numerosPares = numeros.filter { it % 2 == 0 }
println(numerosPares) // Imprime "[2, 4]" 

Muy buena clase esto es mas como programación funcional y esta chido.

Cada vez me esta gustando mas Kotlin 😄

Lo que no me gusta de Kotlin en VS Code (porque ahí lo utilizo con las extensiones) es que tarda un poco bastante en compilar. Pero todo bien, buen curso por cierto.

Genial, es un gran codigo, aunque de mi lado viendo los recursos compartidos en la documentacion de Kotlin tome la siguiente alternativa para saber la posicion y obtener el valor: ```js var fruitsList: List<String> = listOf("Apple" , "Bannana" , "Avocado", "Oranges", "Pineapple", "Gauva"); //for each //(index as the position, value as name that has the index position) in nameToIterate. withIndex(): will get the value for ((index, value ) in fruitsList.withIndex() ) println("The fruit #$index is $value"); ```El resultado fue el siguiente: The fruit #0 is Apple The fruit #1 is Bannana The fruit #2 is Avocado The fruit #3 is Oranges The fruit #4 is Pineapple The fruit #5 is Gauva Saludos, fue una gran clase!
![](https://static.platzi.com/media/user_upload/image-8f4ad20f-22da-4c57-9aa6-01d96a776b0d.jpg)![](https://static.platzi.com/media/user_upload/image-4e4b4aac-bf2f-4ed3-a5b0-8cd4b1d6c734.jpg)

El signo $ en la función print se utiliza para indicar el formateo de cadena. Esto significa que puede usarlo para reemplazar variables dentro de una cadena. Por ejemplo, si quieres imprimir una cadena con una variable, puedes hacer esto:

 myname = "John" print(f"My name is ${myname}") 

Esto imprimirá “My name is John”. El signo $ se usa para indicar que el valor de la variable debe reemplazar la parte de la cadena.

EJEMPLOS DE CLASE

fun main(args: Array<String>) {
  //FUNCIONES DE EXTENSION
  
  //FOR :  Ejecutar codigo para cada elemento de una lista


  //listOf(): Estructura de datos que no puede ser modificada
  val listaFrutas = listOf("manzana","pera","frambuesa","durazno")

  //recorrer la lista
  for(fruta in listaFrutas){
    println("hoy voy a comerme una fruta llamada $fruta")
  }

  //ahorrar lineas 
    for(fruta in listaFrutas) println("hoy voy a comerme   una fruta llamada $fruta")

    // foreach
    listaFrutas.forEach { fruta -> println("hoy voy a comerme   una fruta nueva llamada $fruta")}

    //map : Funciones poderosas en Kotlin, convertir lista de frutas directamente a enteros que contenga el tamaño de caracteres

    //List<Int>: lista de tipo entero

    val caracterFruta: List<Int> = listaFrutas.map { fruta -> fruta.length }
    println(caracterFruta)

    //Filter : Filtrar según una condición

    val listaFiltrada = caracterFruta.filter {largoFruta -> largoFruta>5}
    println(listaFiltrada)
}

Explorando usos avanzados de condiciones y bucles en Kotlin
https://blog.logrocket.com/advanced-uses-conditions-loops-kotlin/

Hay una frase de este curso que me causó conflicto:
El nombre de la variable es algo que podemos “modificar luego”.
Yo creo que, según el tio bob, eso estaría muy mal.
Dejar cosas para después solo hace que la catástrofe del código sea inminente. Lo peor, parece que el instructor no leyó el libro de Clean Code.
Estoy muy molesto por eso!

Les dejo mi aporte de un caso de uso con frutas para una colección de Batidos y jugos de frutas

fun main(args: Array<String>) {
    // Given a fruit list:
    val fruits = listOf("Patilla","Mango","Piña","Guanabana","Cambur")
    // foreach to execute an action for N number of elements in a list
    fruits.forEach { fruit -> println("I love $fruit") }
    // map to return new list adding Smoothie to every string of fruit
    val fruitSmoothies = fruits.map { fruit -> "$fruit Smoothie" }
    println("Fruit Smoothies: $fruitSmoothies")
    // map to return new list adding Smoothie to every string of fruit
    val fruitJuices = fruits.map { fruit -> "$fruit Juice" }
    println("Fruit Juices: $fruitJuices")
    // use Kotlin built in plus method to create a list with both fruitSmoothies and fruitJuices
    val fruitMenu = fruitSmoothies.plus(fruitJuices)
    println("Fruit Menu: $fruitMenu")
    // filter only Fruit Juices back from List using Kotlin built in contains method
    val newfruitJuicesList = fruitMenu.filter { fruit -> fruit.contains("Juice") }
    println("New Fruit Juices List: $newfruitJuicesList")
} 

También se puede recorrer arrays con el método forEach, al igual que en JS. Por ejemplo:
val arr = arrayOf(1, 2, 3)
arr.forEach { println(it) }

KT nos da una keywork <<it>> que representa el elemento que se está recorriendo.

este for de kotlin se parece al for de python por lo de “in”

Los ciclos for también pueden expresarsen así:

for (i in 1..3) {
    println(i)
}
for (i in 6 downTo 0 step 2) {
    println(i)
}

O también pueden expresarsen usarsen así para recorrer arreglos:

for (i in array.indices) {
    println(array[i])
}

Consulta la documentación de kotlin:

val listasFrutas = listOf("Manzana","Pera","Frambuesa","Durazno")
    for (fruta in listasFrutas){
         println("Hoy comeré ${fruta}")
    }

    listasFrutas.forEach{ fruta -> println("Hoy me comere la fruta ${fruta}") }

    val cantCaracterFrutas = listasFrutas.map { fruta -> fruta.length }
    println(cantCaracterFrutas)

    val listaFiltrada = cantCaracterFrutas.filter { caracterFruta -> caracterFruta > 5 }
    println(listaFiltrada)
kotlin se parece mucho a TCLTK ÉSTE FOR de una lista se llama foreach y uno hace foreach { VAR} lista { comandos }

Para el que esta dando sus primeros pasos no debe haber sido nada facil esta clase

Muy util la clase me parecen muy practicos estas funciones para procesar la informacion que venga de una consulta en la base de datos de manera mas simple y entendible para el equipo de trabajo.

Excelente profesor sin duda. Espero haga más cursos.

Buena clase. Muy entendible

Interesante, normalmente en otros lenguajes para usar el for de esa forma se llama foreach