Pensando no "also" como uma function que não vai impactar no seu código, a função que lá atrás foi usado .let
.let(::println)
seria mais aconselhado usar o .also ?
.also(::println)
Pensando no "also" como uma function que não vai impactar no seu código, a função que lá atrás foi usado .let
.let(::println)
seria mais aconselhado usar o .also ?
.also(::println)
Olá Gabriel!
A função also
é uma das funções de escopo disponíveis no Kotlin e tem uma funcionalidade semelhante à função let
. Ambas as funções permitem executar um bloco de código em um objeto de contexto, mas há uma diferença importante entre elas.
A função let
recebe o objeto de contexto como argumento do lambda e permite acessar esse objeto usando o apelido it
. Por exemplo, se tivermos o seguinte código:
val nome = "Gabriel"
nome.let {
println(it)
}
O resultado será a impressão do valor "Gabriel".
Já a função also
recebe o objeto de contexto como receptor do lambda, ou seja, é possível acessar seus membros diretamente, sem a necessidade de usar o apelido it
. Por exemplo:
val nome = "Gabriel"
nome.also {
println(it)
}
O resultado também será a impressão do valor "Gabriel".
Portanto, a escolha entre usar let
ou also
depende do que você pretende fazer com o objeto de contexto. Se você precisa acessar os membros do objeto diretamente, sem usar um apelido, a função also
pode ser mais adequada. No entanto, se você precisa realizar alguma transformação ou cálculo com o objeto, a função let
pode ser mais apropriada.
Espero ter ajudado e bons estudos!