Vamos usar este guia para aprender a usar a palavra -chave adiada em Go.
Golang adiar a palavra -chave.
Para adicionar o mecanismo de adiamento a uma função, use a palavra -chave difer seguida pela função ou nome do método. Um código de exemplo é como mostrado:
Pacote principal
importar "fmt"
func main ()
fmt.Println ("Eu corro primeiro")
adiar fmt.Println ("Eu corro o último")
fmt.Println ("Eu corro segundo")
No exemplo acima, usamos a palavra -chave difer para as palavras para adiar a execução da função na quarta linha. Isso significa que esta função será executada por último.
Um exemplo de saída é como mostrado:
$ go run adie.ir
Eu corro primeiro
Eu corro em segundo lugar
Eu corro por último
Isso significa que o método é executado apenas depois que todos os outros métodos retornam.
Lembre -se de que a função ou método chamado com uma palavra -chave de adiamento será executada enquanto os outros métodos/funções retornarão. O retorno pode ser através de um pânico ou execução normal.
Considere o exemplo abaixo em que um método é chamado, apesar de um pânico.
Pacote principal
importar "fmt"
func main ()
adiar fmt.Println ("eu corro")
pânico ("pânico!!!")
fmt.Println ("eu não corro")
O código acima deve retornar:
$ go run adie.ir
eu corro
Pânico: pânico!!!
Goroutine 1 [Running]:
principal.principal()
+0x73
status de saída 2
Ordem de execução
Os argumentos de uma função diferida são avaliados imediatamente, embora a execução seja atrasada até que a função circundante retorne.
Se você tiver mais de uma chamada de função diferida, vá organizá-los em uma lista e executá-los na última parte da primeira saída (LIFO).
Podemos ilustrar isso usando um simples loop, como mostrado abaixo:
Pacote principal
importar "fmt"
func main ()
fmt.Println ("eu começo")
para i: = 1; eu <= 5; i++
adiar fmt.Println (i)
fmt.Println ("I Second")
Podemos ver a ordem de execução na saída:
eu começo
Eu segundo
5
4
3
2
1
Use a função de adiamento para retornar um valor
Você pode usar uma função diferida anônima para acessar e alterar os parâmetros de retorno da função circundante.
Um exemplo é como mostrado:
func diz () (str string)
adiar func ()
str = "adeus"
()
Retorne "Olá!"
Neste exemplo, a função retorna a string "adeus" em vez de "olá".
Adiar o uso prático - fechar o arquivo
Um caso de uso do mundo real da palavra-chave de adiamento é fechar um arquivo. Veja o exemplo mostrado abaixo:
Arquivo, Err: = OS.Aberto ("Olá.TXT")
se err != nil
registro.Fatal (ERR)
Arquivo de adiamento.Fechar()
scanner: = bufio.NewsCanner (arquivo)
Scanner.Split (Bufio.Scanwords)
para scanner.Varredura()
fmt.Println (scanner.Texto())
se err: = scanner.Errar(); errar != nil
registro.Fatal (ERR)
Abrimos o arquivo para ler usando o método open () no exemplo acima. Em seguida, usamos a palavra -chave difer para atrasar a operação de fechamento após a conclusão da operação de leitura.
Conclusão
Neste artigo, discutimos como a palavra -chave para adiar e como podemos usá -la para adiar a execução de uma função.
Obrigado pela leitura!!