1
resposta

Não consigo entender o "by"

Sei que quando queremos instanciar uma classe usamos o "=" e passamos "classeNova()". O "by" quando usamos ele para atribuirmos algo a uma variavel tipo quando usamos o "remember" eu não consegui entender o que ele faz. Ele faz a variável nova fazer a mesma coisa que a função "remember" então seria no caso um jeito de instanciar funções mas ai fiquei confuso pois existe os "::" que faz a mesma coisa? O by só pode ser utilizado para passar funções a uma variável ou classe também da ? Quem puder me ajudar agradeço!!

1 resposta

Olá, Tudo bem ?

O operador "by" é usado para delegar responsabilidades a outra classe/objeto através do Design Pattern: Delegation.

Resumindo, o Delegation Pattern é uma forma de delegar uma responsabilidade para algum objeto próximo, ou seja, é onde o objeto expressa determinado comportamento para o exterior, deixando a responsabilidade de determinado comportamento para outro objeto.

A ideia é que vc consiga manipular o valor da inicialização toda vez que você altera o estado da tela, fazendo assim a alteração do valor daquela propriedade. Se você se sentir confortável com a lingua inglesa ou quiser traduzir a página, recomendo a leitura da documentação oficial do Kotlin tratando sobre Delegated properties.

Já o método "remember" resumidamente, é usado para armazenar o resultado de uma expressão e reutilizá-lo em vez de recomputá-lo sempre que é necessário, a inicialização por "::" seria somente para instanciar.

Qualquer coisa, estarei à disposição :)

Forte abraço e bons estudos.