Qual é o significado do sinal de adição antes de um método Kotlin?

8

Estou estudando Kotlin e estava assistindo o AndroidDevSummit, mais especificamente a apresentação "Undestanding Compose" de Leland Richardson.

Durante a apresentação (aos 28min26seg), ele mostrou o seguinte código:

@Composable
fun App(items: List<String>, query: String) {
    val results = +memo(items, query) {
        items.filter { it.matches(query) }
    }
    // ...
}

O que o sinal de mais "+" antes do método "memorando"?

Jose Silva
fonte
1
Quando uma sobrecarga de operador é usada dessa maneira, você pode clicar com a tecla Ctrl pressionada no Intellij / Android Studio para pular para a declaração da função e ver o que ela faz.
Tenfour04
Ok, @ Tenfour04, obrigado, mas é apenas um recurso e não o objetivo do sinal de "mais", está certo?
Jose Silva
1
Direita. Só estou dizendo que você pode usar isso para descobrir qual função o operador está chamando.
Tenfour04
1
Sim, você pode pular para a declaração do unaryPlus, mas isso não significa que você possa entender seu objetivo. Lá você encontrará apenas o comentário "Resolve o efeito e retorna o resultado".
Ponteiro nulo

Respostas:

2

+é como um operador invocar efeitos. As funções que retornam efeitos retornam um objeto para o efeito e + diz "adicione-o à composição aqui"

por Adam Powell em Kotlin Slack

O tópico completo sobre a folga do kotlin

O +operador será removido no futuro, para estados, provavelmente usará Delegados de Propriedade, algo como isto:var myState by state { "value" }

DevSrSouza
fonte
2
Obrigado @DevSrSouza, mas você poderia esclarecer o que faz e o que é um Efeito? Os links do Slack não estão abertos disponíveis.
Jose Silva
1
De uma palestra que escuto dias atrás, efeitos são tudo o que pode mudar no mundo real, como um valor que você pode alterar em outro local do seu aplicativo e afetar sua interface do usuário. tente ingressar neste link: slack.kotlinlang.org
DevSrSouza 26/10/19