0

Kotlin - Scope Functions

Isaias Bueno
Isaias Bueno

Scope function é um recurso de linguagens funcionais onde é possível aplicar transformações e tratamentos em um objeto em um escopo de função. A biblioteca padrão de Kotlin, oferece funções diversas para executar um bloco de código dentro do contexto de um objeto. Dentro desse contexto, é possível utilizar esse objeto sem seu nome. São 5 funções: let, run, with, apply e also. São 5 formas diferentes de fazer a mesma coisa com pequenas diferenças, aumentando apenas a gama de vocabulário, acredito que com objetivo de oferecer melhores possibilidades de legibilidade do código, mas na documentação oficial, a linguagem fala sobre como o objeto se torna disponível após o bloco e qual resultado da expressão.


O uso dessas funções não incrementa nenhuma capacidade técnica adicional, o objetivo principal é fornecer uma opção de escrita de código mais consistente e com melhor legibilidade.


Basicamente tem duas principais diferenças entre essas funções:


A forma que o contexto do objeto é referenciado

O valor retornado pela função.


Para cada função o contexto do objeto é disponibilizado por uma referência ao objeto a partir de seu nome atual.


Cada scope function usa uma das duas formas para acessar o contexto do objeto:


Como uma função lambda, onde o objeto em questão será referenciado como this.


Como parâmetro de uma função lambida , onde o objeto em questão será referenciado como it.


Por hoje é só pessoal, sucesso nos estudos.

0
0

Comentários (3)

0
Isaias Bueno

Isaias Bueno

24/05/2021 07:29

Francisco, o Kotlin simplesmente facilita a vida rsrs, linguagem mais incrível que encontrei até agora rsrs, posta um vídeo sobre o assunto, acho que seria muito interessante....Almir sem problemas rsrs, sucesso pra você!

1
Francisco Rasia

Francisco Rasia

24/05/2021 06:54

Olá Isaías, tudo bem? Que legal que você trouxe esse assunto para a plataforma.

Usar scope functions deixa o código muito mais idiomático e conciso. Por exemplo, se você quiser fazer uma operação somente se o argumento não for nulo, em Java seria assim:

if(argumento != null) {
  argumento.executaFuncao(parametros)
  }

Em Kotlin com a scope function `let { }` a chamada ficaria:

argumento?.let { executaFuncao(parametros) } 

E assim por diante.


Abraços e ótimos estudos!


Francisco

1
Almir Marques

Almir Marques

23/05/2021 21:21

Parabéns!! Marquei errado na seta lá em cima, desculpe


Android|Kotlin Developer Github: https://github.com/IsaiasBueno

Brasil