2
respostas

Diferença entre it e this

- Eu não entendi muito bem a diferença entre eles dois, e porque uma pode referenciar e o outro não?? 
2 respostas

Olá Victor!

A diferença entre "it" e "this" nas funções de escopo do Kotlin é bastante importante para entender o funcionamento dessas funções.

Quando utilizamos o "it", estamos nos referindo a um objeto de contexto que é acessível como um argumento do lambda. Por exemplo, quando utilizamos a função "let", podemos acessar o objeto de contexto tanto através de um apelido que criamos ou através do "it".

Já quando utilizamos o "this", estamos nos referindo ao receptor ou "receiver" do lambda. Isso significa que o objeto de contexto é acessível sem a necessidade de utilizar o nome do objeto. É como se o objeto estivesse sendo subentendido dentro do lambda.

Vou te dar um exemplo prático para ficar mais claro. Digamos que temos uma string "Hello" e queremos executar uma função de escopo como o "run" ou o "let". Ambos vão fazer a mesma coisa, mas no "run" teremos acesso ao objeto de contexto como um "this" ou receptor. Por exemplo:

val str = "Hello"
str.run {
    println(this.length) // Aqui podemos acessar o objeto de contexto sem referenciá-lo
    // ou seja, podemos acessar o length diretamente
}

No caso acima, podemos acessar o objeto de contexto (a string "Hello") diretamente através do "this" e utilizar seus membros, como o "length", sem a necessidade de referenciá-lo.

Espero ter ajudado e bons estudos!

  • Ou seja a diferença e porque 1 pode ser chamado direto e o outro, ele pode receber um apelido ou usar o it ?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software