que hace (x..x) .map hacer en kotlin android

He estado viendo algunos ejemplos de kotlin en la web y vi lo siguiente, donde no puedo imaginar exactamente qué está haciendo.

(0..6).map{ inflater.inflate(R.layout.test, container) }

Sé que es un range que infla R.layout.test en contenedor, pero ¿qué sentido tiene ".map"?

¿Es solo una forma diferente de escribir for (i in 0..6) ?

En el código vinculado, es una manera diferente y no muy idiomática de repetir alguna acción.

Se pueden usar los siguientes enfoques en lugar de la function de map , si el resultado de la transformación no se va a usar:

 // for loop for (n in 0..6) inflater.inflate(R.layout.test, container) // forEach extension (0..6).forEach { inflater.inflate(R.layout.test, container) } // repeat function repeat(7) { inflater.inflate(R.layout.test, container) } 

map transforma la input en una salida. Dado que Kotlin puede inferir el argumento si es el único, se lo llamará. Entonces tu código es equivalente a esto:

 (0..6).map{ it => inflater.inflate(R.layout.test, container) } 

Puedes ver que no estás usando el argumento de todos modos

Entonces, después de hacer eso, tendrá una list de 7 vistas (de 0 a 6) infladas de R.layout.test

Puede encontrar más sobre el map en la documentation

Es una expresión Lambda . Simplemente infle R.layout.test y agregue esta vista al contenedor . El ejemplo al que se refiere es un GridView y necesita agregar esta vista 7 veces en el contenedor, eso es lo que (1..6) está haciendo aquí.

  • ¿Cómo verificar la class "instanceof" en kotlin?
  • No se puede usar fontawesomefx con kotlin y tornadofx
  • Dagger 2 - Inyectar con valor pnetworkingeterminado en el constructor
  • Cómo degradar Kotlin en Intellij 15
  • Cuerda de relleno en Kotlin
  • ¿Cómo delegar la implementación a una propiedad en Kotlin?
  • Soporte de Base64 para diferentes niveles de API
  • ¿Cómo usar una biblioteca reutilizable en kotlin, con Android y javascript?
  • Kotlin switch-statement con más de dos variables?
  • Fragmento como class interna
  • Kotlin comstack para javascript indestructible