Alguém poderia me explicar mais sobre o let? Me perdi no ponto "Membros que utilizam o argumento"
Alguém poderia me explicar mais sobre o let? Me perdi no ponto "Membros que utilizam o argumento"
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