Um momento
Aula 40
Cursos / Aprenda Go / Golang (Curso de Programação)
Como Usar o Defer para Adiar a Chamada de Funções na Linguagem Golang

Summary

Resumo da Aula sobre Defer em Go

Nesta aula, aprendemos o conceito de "defer" em Go, que é utilizado para adiar a execução de uma função até o final de sua função pai.

Introdução ao Defer

  • Começamos imprimindo um texto na tela usando a função println do pacote FMT.
  • Realizamos um exemplo simples onde imprimimos "Oi" e "Tudo bem?" em sequência.

Funcionamento do Defer

  • Ao usar defer antes da chamada da função println para imprimir "Oi", a execução dessa impressão é adiada até o final da função main.
  • Portanto, a impressão de "Tudo bem?" acontece antes de "Oi", mesmo que "Oi" tenha sido chamado primeiro.

Execução do Defer

  1. defer coloca a função "Oi" na pilha de chamadas (call stack) para execução futura.
  2. A próxima linha é executada normalmente, imprimindo "Tudo bem?".
  3. Ao alcançar o final da função main, a função "Oi" é executada.

Exemplo Adicional

  • Se utilizarmos defer antes de "Tudo bem?", o processo será:
    1. "Oi" é adiado e colocado na stack.
    2. "Tudo bem?" é adiado em seguida e colocado no topo da stack.
    3. Ao final da função main, a função no topo da stack (neste caso "Tudo bem?") é executada primeiro, seguida por "Oi".

Conclusão

O conceito de "defer" permite adiar a execução de funções, gerenciando a ordem em que elas são chamadas, o que pode ser bastante útil em diversas situações.

Até a próxima aula!

Video Transcript

Nesta aula, nós vamos aprender o conceito de A de A, a execução da chamada de uma função usando o defer. Então, nós vamos aprender a execução de uma função, a chamada de uma função usando o comando defer. Antes de a gente começar a usar o defer, vamos primeiro começar com uma coisa bem simples. Vamos primeiro imprimir um texto à tela, a gente já sabe como fazer isso, a gente vai usar a função println e vendo o pacote FMT. Vamos passar como argumento um texto, vou perguntar tudo bem, vamos importar o FMT aqui em cima, vamos rodar esse programa e ver o que dá, a gente já sabe que vai dar parecia mensagem no console, tudo legal. Agora, vamos aqui, antes dessa mensagem, vamos dizer oi, por exemplo. A gente já sabe que vai imprimir duas linhas, primeiro a linha oi, a segunda vai ser tudo bem, em sequência, primeiro na ordem, primeiro oi, depois tudo bem. Mas olha o que acontece se a gente adiar a execução do primeiro aqui. A gente vai usar a palavra defer, no inglês, para adiar. Ver o que acontece agora, quando a gente usa o defer antes da chamada dessa função para imprimir ao console. Então agora, o que é que aconteceu? Tudo bem ver o primeiro antes do oi. O que é que aconteceu aqui? A execução, a chamada do println para imprimir oi foi adiada até o final da execução da função main. Então, o que é que vai acontecer? Quando ele bate nessa linha aqui, você pode imaginar, ele viu que é defer, vou adiar a execução dessa função, somente até o final de main. Então, ele vai pegar e fazer isso, vai para a próxima linha e chama tudo bem. Depois de fazer todas as coisas, que a gente não tem nada aqui, mas se tivesse outras coisas e ir fazer todas essas coisas, até o final, bater no final da função main. Quando bater no final, é que vai executar o oi. Isso que está acontecendo. Então, esse é o defer, tá? Para adiar a execução. Tinha uma função. Então o que acontece se eu defer tudo bem? Vamos ver aqui. Então, o que é que a gente espera? Bateu na linha 6, pegou oi pois na fila, né? Para executar a stack, na verdade, não é fila. Stack, né? Vamos chamar de call stack. Aí, põe lá na stack oi, vai ser adiado, terminou. Pega o próximo, ok, vai adiar o print talento tudo bem, tá certo. Pega aqui, põe no topo, tá? No topo da call stack. Pronto. Depois diz, bateu no final da função main. Ok, vamos dar uma olhada lá na stack, na fila, tá certo? Vamos pegar o primeiro e vamos executar. Então, ele vai executar tudo bem. Vamos pegar o segundo, que agora é o topo da stack. Vamos executar depois de tudo bem. Então, vai dar o quê? Tudo bem e oi. Vamos ver, tá certo? Então, esse é o conceito de adiar a execução de a função. Vamos defer. Então, por essa aula é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: