To ligado que você já usou alguma função de escopo quando está desenvolvendo em Kotlin. Hoje nos atentaremos apenas ao uso ou do let ou do apply ou do run. Bora lá?

Quando usar

let

  • Acesso: O acesso é feito a partir do it
  • Retorno: Retorna o resultado da última expressão dentro do bloco
  • Uso: Execução do bloco de código apenas se a propriedade for não nula
val name: String? = "MyName"
name?.let { print("My name is $it") }

apply

  • Acesso: O acesso é feito a partir do this
  • Retorno: Retorna o próprio objeto
  • Uso: Configuração das propriedades do objeto
val person = Person().apply {
	name = "João"
	age = 18
}

run

  • Acesso: O acesso é feito a partir do this
  • Retorno: Retorna o resultado da última expressão dentro do bloco
  • Uso: Execução de um bloco de código que aplicará uma transformação no objeto e devolverá ele transformado
val result = "123".run {
	val resultInInteger = toInt()
	resultInInteger * 2
}

Bibliografia