Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Não entendi muito bem a Questão do let

Alguém poderia me explicar mais sobre o let? Me perdi no ponto "Membros que utilizam o argumento"

1 resposta
solução!

O let é uma Scope functions, que é uma função que nos permite rodar vários códigos a partir desse objeto dentro de uma expressão lambda.

Já sobre a questão do "Membros que utilizam o argumento", olet referencia o objeto que o chama comoit ou outro argumento desejado: Ex:

val palavra = "Alura"
palavra.let { println(it.length) }

ou podemos alterar a referência utilizada com lambda:

 palavra.let { tamanho -> println(tamanho.length) }

Diferente do run, que não precisa referenciar o objeto, ou se quiser, pode utilizar o this:

palavra.run { println(length) }
palavra.run { println(this.length) }

Além disso, o let tem o retorno do argumento que retorna dentro do lambda:

val tamanho:Int = palavra.let { it.length }

como a função length retorna um Int, essa referencia é do tipo Int

val outraPalavra = "alura"
val tamanho:Boolean= palavra.let { it.equals(outraPalavra) }

já a função equals retorna Boolean, então o let retorna um objeto do tipo Boolean

Para saber mais, tem esse link do próprio site do kotlin explicando mais sobre o Scope functions