Lo primero es tener la tabla de modismos para ver donde se encuentra also.
Parece muy parecido a let
salvo que con let
devuelves el resultado de una función, mientras que con con also
devuelves el objeto original. Esto se ve mucho más claro con un ejemplo:
fun main() { //sampleStart val listLet = listOf(1,2,3,4,5).let { println(it) // Muestra la lista original por pantalla it.asSequence().sortedDescending().sum() } println(listLet) // listLet no es una lista, es la suma de los números de la lista val listAlso = listOf(1,2,3,4,5).also { println(it) // Muestra la lista original por pantalla it.asSequence().sortedDescending().sum() } println(listAlso) // Seguiría siendo la lista original //sampleEnd }
La conclusión es que also
en general se utiliza como efecto secundario (side effect en inglés) cuando quieres hacer algo adicional con un objeto, muy útil por ejemplo para asignar el valor a una variable y a su vez mostrarla por pantalla.
Enlaces de interés:
- Modism – Swapping two variables – Kotlinlang
- Kotlin Standard Functions cheat-sheet – Jose Alcérreca
- Function references in Kotlin – Antonio Leiva