Sobes.tech
Junior

O que é um bloco 'run' em Kotlin e como é utilizado?

sobes.tech IA

Resposta da IA

O bloco run em Kotlin é uma função de escopo incorporada na biblioteca padrão do Kotlin. É usado para:

  1. Executar um bloco de código em um objeto: É chamado em um objeto e executa uma expressão lambda fornecida como argumento. Dentro da lambda, o objeto está disponível como this.
  2. Retornar um resultado: Retorna o resultado da última expressão na lambda.
  3. Objetos nullable: É útil para trabalhar com objetos nullable, pois ao usar o operador de chamada segura ?., o bloco run será executado apenas se o objeto não for null.

Características principais:

  • Receptor (this): O objeto no qual run é chamado está disponível dentro da lambda como this.
  • Valor de retorno: O resultado da última expressão na lambda.

Exemplos de uso:

// Exemplo 1: executar código em um objeto e retornar um resultado
val length: Int = "some string".run {
    // 'this' aqui refere-se a "some string"
    println("Comprimento da string: ${this.length}")
    length // Retorna o comprimento da string
}
// Exemplo 2: trabalhar com um objeto nullable
val nullableString: String? = "another string"
val upperCaseString: String? = nullableString?.run {
    // O bloco será executado apenas se nullableString não for null
    toUpperCase() // Retorna a string em maiúsculas
}

val anotherNullableString: String? = null
val anotherUpperCaseString: String? = anotherNullableString?.run {
    // O bloco não será executado, run?. retornará null
    toUpperCase()
}
// Exemplo 3: criar e configurar um objeto
val person = run {
    val name = "Alice"
    val age = 30
    Person(name, age) // Presume-se que a classe Person exista
}