Sobes.tech
Junior — Middle

Quais são as diferenças entre os métodos apply e with em termos de uso e finalidade?

sobes.tech IA

Resposta da IA

No contexto do Android (e Kotlin), apply e with são funções de extensão para facilitar o trabalho com objetos, mas diferem na forma de uso e no valor retornado.

  • apply: Executa um bloco de código com o objeto como this e retorna o próprio objeto. Frequentemente usado para inicializar objetos.

  • with: Aceita um objeto e um bloco de código, executa o bloco com o objeto como this, mas retorna o resultado da última expressão no bloco.

Exemplo:

val paint = Paint().apply {
    color = Color.RED
    strokeWidth = 10f
}

val length = with(paint) {
    color.toString() + strokeWidth.toString()
}

Aqui, apply é útil para configurar o objeto, e with para realizar operações com o objeto e obter um resultado.