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)
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!