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.

Último código Tay Du VNG e como inserir o código

Último código Tay Du VNG e como inserir o código

O mais recente código VNG do Tay Du oferece aos jogadores uma série de recompensas atraentes, como elixires, prata, lingotes de ouro, baús de recompensas e uma série de outros itens para ajudar novos jogadores a abrir turnos gerais.

O Instagram agora permite que os usuários agendem e fixem mensagens diretas

O Instagram agora permite que os usuários agendem e fixem mensagens diretas

O recurso de mensagens diretas do Instagram agora está recebendo vários novos recursos, incluindo mensagens diretas agendadas que você pode escrever com antecedência e definir para enviar posteriormente, com até 29 dias de antecedência.

Google lança o Career Dreamer, sua mais nova ferramenta de IA para ajudar a escolher a carreira perfeita

Google lança o Career Dreamer, sua mais nova ferramenta de IA para ajudar a escolher a carreira perfeita

Não importa se você está dando os primeiros passos no mercado de trabalho ou fazendo a transição para um novo setor, o Career Dreamer experimental do Google foi criado para conectar você a funções compatíveis.

Odiando a Apple, Mark Zuckerberg ainda precisa usar Macbook, mas é muito estranho

Odiando a Apple, Mark Zuckerberg ainda precisa usar Macbook, mas é muito estranho

Recentemente, Mark Zuckerberg postou uma foto sua sentado trabalhando em um laptop. É um laptop (supostamente um MacBook), mas o logotipo da maçã mordida não aparece em lugar nenhum.

Aviso: Se você possui um roteador VPN D-Link antigo, jogue-o fora!

Aviso: Se você possui um roteador VPN D-Link antigo, jogue-o fora!

O fabricante confirmou que uma vulnerabilidade grave foi encontrada em alguns dispositivos que não são mais oficialmente suportados.

Como usar memoji no iPhone

Como usar memoji no iPhone

Com os memojis do iPhone, você pode adicionar personalidade por meio de expressões faciais às mensagens e conversas do FaceTime.

Instruções para fazer backup automático de pastas no Google Fotos

Instruções para fazer backup automático de pastas no Google Fotos

As contas do Google Fotos agora têm a capacidade de fazer backup automático de fotos e vídeos de uma pasta específica no seu PC.

Por que a Caixa de Seleção é um recurso subutilizado do Excel?

Por que a Caixa de Seleção é um recurso subutilizado do Excel?

À primeira vista, as caixas de seleção do Excel parecem um recurso muito simples, o que provavelmente explica por que elas são frequentemente ignoradas.

Como gravar vídeo da tela no Chromebook

Como gravar vídeo da tela no Chromebook

A gravação de tela é um recurso extremamente útil, mas nem todos os sistemas operacionais vêm com esse recurso integrado.

Maneiras de ganhar giros no Coin Master, ganhe giros no Coin Master

Maneiras de ganhar giros no Coin Master, ganhe giros no Coin Master

Não faltam maneiras de ganhar giros no Coin Master, você precisa basicamente trabalhar duro para ter a chance de receber uma série de giros. Quantrimang.com compilou maneiras de ajudar você a ganhar muitas rodadas no Coin Master.

Como criar uma lista de verificação no Google Docs

Como criar uma lista de verificação no Google Docs

Adicionar uma lista de verificação ao Google Docs é uma etapa necessária quando fazemos uma investigação ou levantamento de algum conteúdo.

Por que os Estados Unidos escolhem madeira em vez de concreto para construir casas?

Por que os Estados Unidos escolhem madeira em vez de concreto para construir casas?

Do que são feitas as casas na América? A resposta é madeira. Em vez de cimento, por que as casas americanas são construídas de madeira? Vamos descobrir juntos!

Eventos astronômicos extraordinários em 2025

Eventos astronômicos extraordinários em 2025

O que esperar do mundo do espaço e da astronomia em 2025? Vamos explorar juntos os momentos astronômicos imperdíveis deste ano!

Último código Strinova e como resgatar o código

Último código Strinova e como resgatar o código

O Código Strinova lhe dará presentes que serão salva-vidas indispensáveis ​​em sua jornada para encontrar a luz novamente.

Último código de desemprego para cultivo imortal e como resgatar o código para obter recompensas

Último código de desemprego para cultivo imortal e como resgatar o código para obter recompensas

O código completo do Cultivo de Desemprego abaixo lhe dará uma série de recompensas.