Palavra-chave Defer em Golang

Em Go, as instruções defer atrasam a execução de uma função ou método ou de um método anônimo até que as funções próximas retornem. Em outras palavras, os argumentos para adiar funções ou métodos são avaliados imediatamente, mas não são executados até que as funções próximas retornem. Você pode criar um método adiado, uma função ou uma função anônima usando a palavra-chave defer.

Palavra-chave Defer em Golang

Sintaxe:

// Hàm
defer func func_name(parameter_list Type)return_type{
// Code
}

// Phương thức
defer func (receiver Type) method_name(parameter_list){
// Code
}

defer func (parameter_list)(return_type){
// code
}()

Nota importante:

  • Na linguagem Go, várias instruções defer são permitidas no mesmo programa e são executadas na ordem LIFO (Último a Entrar, Primeiro a Sair), conforme mostrado no Exemplo 2.
  • Em instruções defer, os argumentos são avaliados quando a instrução defer é executada, não quando ela é chamada.
  • As instruções de adiamento são frequentemente usadas para garantir que os arquivos sejam fechados quando sua necessidade terminar, ou para fechar canais, ou para detectar problemas no programa.

Agora vamos ver um exemplo para entender melhor.

Exemplo 1:

// Chương trình Go minh họa
// khái niệm của lệnh defer
package main

import "fmt"

// Các hàm
func mul(a1, a2 int) int {

	res := a1 * a2
	fmt.Println("Result: ", res)
	return 0
}

func show() {
	fmt.Println("Hello!, Quantrimang.com")
}

// Hàm chính
func main() {

	// Gọi hàm mul() 
	// Tại đây hàm mul hoạt động
	// như một hàm bình thường
	mul(23, 45)

	// Gọi hàm mul()
	// Dùng từ khóa defer 
	// Hàm the mul() 
	// là hàm defer
	defer mul(23, 56)

	// Gọi hàm show() 
	show()
}

Resultado:

Result:  1035
Hello!, Quantrimang.com
Result:  1288

Explicação: No exemplo acima, temos duas funções chamadas mul() e show() . Enquanto a função show() é chamada normalmente na função main() , a função mul() é chamada de duas maneiras diferentes:

  • Primeiro, chamamos a função mul normalmente (sem a palavra-chave defer), ou seja, mul(23, 45) e ela é executada quando a função é chamada (Saída: Resultado: 1035).
  • Em segundo lugar, chamamos a função mul() como uma função defer usando a palavra-chave defer, ou seja, defer mul(23, 56) e ela executa (Saída: Resultado: 1288) quando todos os métodos circundantes retornam.

Exemplo 2:

// Minh họa chương trình Go
// dùng nhiều lệnh defer, để minh họa chính sách LIFO 
package main

import "fmt"

// Các hàm
func add(a1, a2 int) int {
	res := a1 + a2
	fmt.Println("Result: ", res)
	return 0
}

// Hàm chính
func main() {

	fmt.Println("Start")

	// Nhiều lệnh defer
	// Triển khai theo thứ tự LIFO 
	defer fmt.Println("End")
	defer add(34, 56)
	defer add(10, 10)
}

Resultado:

Start
Result:  20
Result:  90
End
Sign up and earn $1000 a day ⋙

Leave a Comment

Palavras-chave em Go

Palavras-chave em Go

Palavra-chave - Palavras-chave são palavras em um idioma que são usadas para algum processo interno ou representam alguma ação predefinida. Aqui estão as coisas que você precisa saber sobre palavras-chave em Golang.

Tipos de dados em Golang

Tipos de dados em Golang

O tipo de dados especifica o tipo de dados que uma variável Go válida pode conter. Na linguagem Go, os tipos são divididos em quatro categorias, como segue:

Argumentos de função em Golang

Argumentos de função em Golang

Go suporta duas maneiras principais de passar argumentos: Passagem por valor e Passagem por referência. Go usa passagem por valor por padrão.

Função retornando múltiplos valores em Golang

Função retornando múltiplos valores em Golang

Na linguagem Go, você pode retornar vários valores de uma função, usando a instrução return. Em outras palavras, em uma função, uma instrução return pode retornar vários valores.

Instrução Switch em Go

Instrução Switch em Go

Golang como a maioria das outras linguagens de programação tem instrução switch. Veja como usar a instrução switch em Golang.

Casos a serem conhecidos ao usar instruções de seleção em Golang

Casos a serem conhecidos ao usar instruções de seleção em Golang

Neste artigo, aprenderemos como usar o caso padrão para evitar deadlock. Mas primeiro, vamos descobrir o que é o caso de deadlock ao usar o comando select do Golang?

Estruturas e campos anônimos em Golang

Estruturas e campos anônimos em Golang

Estruturas anônimas em Golang são estruturas temporárias sem nomes usadas para propósitos únicos, enquanto campos anônimos permitem a incorporação de campos sem nome.

Como usar Runa em Golang

Como usar Runa em Golang

O que são Runas em Golang? Como usar Runa em Golang? O artigo lhe dará a resposta.

Como usar operadores em Golang

Como usar operadores em Golang

Operadores nos permitem realizar diferentes tipos de operações em operandos. Na linguagem Go, os operadores podem ser classificados com base em suas diferentes funções.

Identificador vazio em Golang

Identificador vazio em Golang

_(sublinhado) em Golang é chamado de Identificador em Branco. Identificador é um nome definido pelo usuário para componentes de programa usados ​​para fins de identificação.

Como criar um programa básico em Golang

Como criar um programa básico em Golang

Olá, mundo! é o primeiro programa básico em qualquer linguagem de programação. Você pode escrever este primeiro programa em Golang seguindo os passos abaixo.

Como instalar o Go no Windows

Como instalar o Go no Windows

O Golang pode ser facilmente instalado no Windows. Abaixo está um guia passo a passo detalhado para instalar o Golang no Windows.

Métodos com o mesmo nome em Golang

Métodos com o mesmo nome em Golang

Golang permite criar dois ou mais métodos com o mesmo nome no mesmo pacote, mas os receptores desses métodos devem ser de tipos diferentes.

Funções em Go

Funções em Go

Em Go, funções são blocos de código que executam tarefas específicas, que podem ser reutilizadas em todo o programa para economizar memória, melhorar a legibilidade e economizar tempo.

Escopo de Variável em Go

Escopo de Variável em Go

O escopo de uma variável em Golang determina a parte do programa onde essa variável é acessível. Em Go, todos os identificadores têm um escopo lexical que é determinado em tempo de compilação.

Boas citações sobre ciúme e inveja humana

Boas citações sobre ciúme e inveja humana

Qual status sobre ciúme e inveja mais faz você se sentir assim? O artigo resumirá para você os melhores status de ciúmes e tristeza eterna na Internet.

Boas citações de status sobre olhar a vida com calma

Boas citações de status sobre olhar a vida com calma

Há muitas citações boas sobre o silêncio na vida na Internet. O artigo resumirá para você boas citações sobre como encarar a vida.

Spotify e Instagram estão se unindo para desenvolver um recurso semelhante ao MSN para compartilhar músicas em tempo real

Spotify e Instagram estão se unindo para desenvolver um recurso semelhante ao MSN para compartilhar músicas em tempo real

O Meta e o Spotify estão desenvolvendo um recurso semelhante ao MSN que permitirá que os usuários do Instagram vejam em tempo real a música que estão ouvindo.

Instagram lança nova ferramenta de texto para todos os usuários

Instagram lança nova ferramenta de texto para todos os usuários

Uma imagem vale mais que mil palavras. Então por que você desejaria adicionar texto a uma foto? O Instagram parece achar que é uma boa opção para oferecer a todos os usuários.

Apple pode apresentar uma nova personalidade de IA semelhante à Siri para robôs

Apple pode apresentar uma nova personalidade de IA semelhante à Siri para robôs

A Apple está trabalhando em uma interface semelhante à humana, baseada em IA generativa, que poderá controlar os futuros dispositivos de mesa e robóticos da Apple.

Como usar o Gemini AI como assistente virtual no Android em vez do Google Assistente

Como usar o Gemini AI como assistente virtual no Android em vez do Google Assistente

Usuários do Android agora podem usar o Gemini em vez do Google Assistente para usar recursos mais avançados do assistente virtual Gemini.

Como conversar com o Google Gemini usando imagens

Como conversar com o Google Gemini usando imagens

O Gemini agora permite que você converse com imagens e pesquise informações em imagens no Gemini. O Gemini analisará a imagem que você enviar e, a partir daí, fornecerá as informações que você deseja encontrar.

Como editar imagens no Copilot AI

Como editar imagens no Copilot AI

Agora, os usuários podem editar essas imagens diretamente no Copilot, sem precisar usar software adicional de edição de imagens.

Instruções para remover formatação de tabela no Excel

Instruções para remover formatação de tabela no Excel

Ao baixar um arquivo Excel da internet, o formato da tabela pode não corresponder aos seus requisitos de criação de tabela de dados. Se for o caso, você pode remover a formatação da tabela no Excel.

5 maneiras de corrigir o erro de não pareamento do Apple Watch

5 maneiras de corrigir o erro de não pareamento do Apple Watch

Embora o Apple Watch seja uma ótima maneira de monitorar sua atividade física diária, enviar mensagens e muito mais, o que acontece se o seu Apple Watch não emparelhar?

As 6 empresas mais antigas do mundo ainda em operação, a número 1 está em operação há 1.400 anos

As 6 empresas mais antigas do mundo ainda em operação, a número 1 está em operação há 1.400 anos

Qual é a empresa mais antiga do mundo? Em que ano foi fundada a empresa mais antiga do mundo? Vamos descobrir juntos!

Como revisar notificações excluídas no Samsung

Como revisar notificações excluídas no Samsung

Na nova versão One UI 3.0 da Samsung, os usuários podem usar muitos outros recursos interessantes e atraentes, como revisar notificações excluídas na barra de status da Samsung.

Desejos para o Dia Internacional do Homem, desejos para o dia 19 de novembro para namorado, amante, marido doce e romântico

Desejos para o Dia Internacional do Homem, desejos para o dia 19 de novembro para namorado, amante, marido doce e romântico

Quais são os melhores e mais curtos desejos de 19 de novembro para seu amor? Se você está sem ideias, este artigo vai sugerir desejos significativos para 19 de novembro.

Como usar um suéter com estilo e conforto

Como usar um suéter com estilo e conforto

Os suéteres básicos são uma parte indispensável de todos os nossos guarda-roupas de outono e inverno. Veja como misturar e combinar suéteres de uma forma simples, mas elegante.

A maneira mais fácil de transformar inimigos em amigos

A maneira mais fácil de transformar inimigos em amigos

Ter inimigos é sempre uma situação desagradável. Felizmente, você pode transformar seus inimigos em amigos. Aqui estão algumas maneiras simples de consertar um relacionamento que estão disponíveis para todos.