Dominar as funções de escopo do Kotlin: let, run, with, apply e também

May 07 2023
Introdução Kotlin tornou-se uma linguagem de programação popular para desenvolvimento de aplicativos Android e além, oferecendo uma sintaxe moderna, expressiva e concisa. Um dos recursos poderosos do Kotlin são suas funções de escopo, que permitem estruturar e simplificar seu código.
Fonte da imagem

Introdução

Kotlin se tornou uma linguagem de programação popular para desenvolvimento de aplicativos Android e além, oferecendo uma sintaxe moderna, expressiva e concisa. Um dos recursos poderosos do Kotlin são suas funções de escopo, que permitem estruturar e simplificar seu código. Esta postagem de blog irá mergulhar nas cinco funções de escopo mais usadas em Kotlin: let, run, with, apply e também. Explicaremos seu uso, forneceremos exemplos de código e discutiremos as diferenças entre eles.

deixar

A função 'let' é uma função de extensão que pode ser aplicada a qualquer objeto. Ele executa um bloco de código com o objeto como seu contexto e retorna o resultado da última expressão dentro do bloco. 'let' é útil para executar operações em um objeto anulável e transformar seu valor.

Exemplo:

val name: String? = "John Doe"

val length = name?.let {
    println("Name is $it")
    it.length
} ?: 0

println("Name length: $length")

correr

A função 'run' é semelhante a 'let', mas é chamada no próprio objeto, e não como uma função de extensão. Ele executa um bloco de código com o objeto como seu contexto e retorna o resultado da última expressão dentro do bloco.

Exemplo:

val numbers = mutableListOf(1, 2, 3, 4, 5)

val sum = numbers.run {
    add(6)
    add(7)
    sum()
}

println("Sum: $sum")

com

'with' é semelhante a 'run', mas não é uma função de extensão. Em vez disso, ele usa um objeto como primeiro argumento e um bloco de código como segundo argumento. Ele executa o bloco de código com o objeto como seu contexto e retorna o resultado da última expressão dentro do bloco.

Exemplo:

val person = Person("John Doe", 30)

val info = with(person) {
    println("Name: $name, Age: $age")
    "Name: $name, Age: $age"
}

println("Person Info: $info")

aplicar

'apply' é uma função de extensão que pode ser aplicada a qualquer objeto. Ele executa um bloco de código com o objeto como seu contexto e retorna o próprio objeto. 'apply' é útil para configurar as propriedades de um objeto e encadear várias chamadas.

Exemplo:

val person = Person("John Doe", 30).apply {
    age = 31
    name = "Jane Doe"
}

println("Updated person: Name - ${person.name}, Age - ${person.age}")

também

'also' é semelhante a 'aplicar', mas retorna o resultado do bloco em vez do próprio objeto. É uma função de extensão que pode ser aplicada a qualquer objeto e é útil para executar efeitos colaterais ou ações adicionais em um objeto.

Exemplo:

val updatedName = "Jane Doe".also {
    println("Updating name to $it")
}

val person = Person("John Doe", 30).apply {
    age = 31
    name = updatedName
}

println("Updated person: Name - ${person.name}, Age - ${person.age}")

Conclusão

As funções de escopo do Kotlin, ou seja, let, run, with, apply e também podem ajudá-lo a escrever um código mais limpo e legível. Compreender suas diferenças e casos de uso permitirá que você aproveite todo o seu potencial e torne seu código Kotlin mais eficiente. Os exemplos nesta postagem do blog devem ajudá-lo a começar a usar essas funções poderosas em seus projetos Kotlin.

  • Documentação Kotlin sobre funções de escopo
  • Fonte da imagem