Sobes.tech
Junior — Middle

Que funções de escopo (scope functions) em Kotlin conheces?

sobes.tech IA

Resposta da IA

Em Kotlin, existem várias funções de âmbito (scope functions) que permitem realizar operações com um objeto num determinado contexto. As principais são:

  • let — executa um bloco de código com o objeto como argumento it e devolve o resultado do bloco. É frequentemente usado para trabalhar de forma segura com nullable.

    val name: String? = "Kotlin"
    name?.let {
        println("Comprimento do nome: ${it.length}")
    }
    
  • run — executa um bloco de código com o objeto como this e devolve o resultado do bloco. Útil para inicializações e cálculos.

    val result = "Hello".run {
        println(this)
        length
    }
    
  • with — semelhante ao run, mas chamado como uma função com o objeto como parâmetro, devolvendo o resultado do bloco.

    val builder = StringBuilder()
    val result = with(builder) {
        append("Hello")
        append(" World")
        toString()
    }
    
  • apply — executa um bloco com o objeto como this, e devolve o próprio objeto. Frequentemente usado para configurar objetos.

    val person = Person().apply {
        name = "John"
        age = 30
    }
    
  • also — executa um bloco com o objeto como it, e devolve o próprio objeto. Usado para ações adicionais, como logging.

    val numbers = mutableListOf(1, 2, 3).also {
        println("Lista: $it")
    }
    

Cada função difere na forma como passa o objeto para a lambda (this ou it) e no que devolve (resultado do bloco ou o próprio objeto).