Parola chiave Defer in Golang

In Go, le istruzioni defer ritardano l'esecuzione di una funzione o di un metodo o di un metodo anonimo finché non vengono restituite le funzioni vicine. In altre parole, gli argomenti per rinviare funzioni o metodi vengono valutati immediatamente, ma non vengono eseguiti finché non ritornano le funzioni vicine. È possibile creare un metodo differito, una funzione o una funzione anonima utilizzando la parola chiave defer.

Parola chiave Defer in Golang

Sintassi:

// 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:

  • Nel linguaggio Go sono consentite più istruzioni defer nello stesso programma e vengono eseguite secondo l'ordine LIFO (Last-In, First-Out), come mostrato nell'esempio 2.
  • Nelle istruzioni defer, gli argomenti vengono valutati quando l'istruzione defer viene eseguita, non quando viene chiamata.
  • Le istruzioni defer vengono spesso utilizzate per garantire che i file vengano chiusi quando termina la loro necessità, per chiudere i canali o per individuare problemi nel programma.

Ora vediamo un esempio per capire meglio.

Esempio 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()
}

Risultato:

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

Spiegazione: Nell'esempio precedente, abbiamo due funzioni denominate mul() e show() . Mentre la funzione show() viene chiamata normalmente nella funzione main() , la funzione mul() viene chiamata in due modi diversi:

  • Per prima cosa, chiamiamo la funzione mul normalmente (senza la parola chiave defer), ovvero mul(23, 45), che verrà eseguita quando verrà chiamata la funzione (Output: Risultato: 1035).
  • In secondo luogo, chiamiamo la funzione mul() come funzione defer utilizzando la parola chiave defer, ovvero defer mul(23, 56) e viene eseguita (Output: Risultato: 1288) quando tutti i metodi circostanti ritornano.

Esempio 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)
}

Risultato:

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

Leave a Comment

Parole chiave in Go

Parole chiave in Go

Parola chiave - Le parole chiave sono parole in un linguaggio che vengono utilizzate per qualche processo interno o rappresentano qualche azione predefinita. Ecco cosa devi sapere sulle parole chiave in Golang.

Tipi di dati in Golang

Tipi di dati in Golang

Il tipo di dati specifica il tipo di dati che una variabile Go valida può contenere. Nel linguaggio Go, i tipi sono suddivisi in quattro categorie come segue:

Argomenti delle funzioni in Golang

Argomenti delle funzioni in Golang

Go supporta due metodi principali per passare argomenti: passaggio per valore e passaggio per riferimento. Di default, Go utilizza il passaggio per valore.

Funzione che restituisce più valori in Golang

Funzione che restituisce più valori in Golang

Nel linguaggio Go è possibile restituire più valori da una funzione, utilizzando l'istruzione return. In altre parole, in una funzione, un'istruzione return può restituire più valori.

Istruzione Switch in Go

Istruzione Switch in Go

Golang, come la maggior parte degli altri linguaggi di programmazione, ha l'istruzione switch. Ecco come utilizzare l'istruzione switch in Golang.

Casi da conoscere quando si utilizzano le istruzioni di selezione in Golang

Casi da conoscere quando si utilizzano le istruzioni di selezione in Golang

In questo articolo impareremo come utilizzare il caso predefinito per evitare situazioni di stallo. Ma prima scopriamo cos'è il caso di deadlock quando si utilizza il comando select di Golang?

Strutture e campi anonimi in Golang

Strutture e campi anonimi in Golang

Le strutture anonime in Golang sono strutture temporanee senza nome, utilizzate per scopi una tantum, mentre i campi anonimi consentono l'incorporamento di campi senza nome.

Come usare le Rune in Golang

Come usare le Rune in Golang

Cosa sono le rune in Golang? Come usare le Rune in Golang? L'articolo vi darà la risposta.

Come usare gli operatori in Golang

Come usare gli operatori in Golang

Gli operatori consentono di eseguire diversi tipi di operazioni sugli operandi. Nel linguaggio Go, gli operatori possono essere classificati in base alle loro diverse funzioni.

Identificatore vuoto in Golang

Identificatore vuoto in Golang

_(trattino basso) in Golang è chiamato identificatore vuoto. L'identificatore è un nome definito dall'utente dei componenti del programma, utilizzato a fini di identificazione.

Come creare un programma base in Golang

Come creare un programma base in Golang

Ciao mondo! è il primo programma base in qualsiasi linguaggio di programmazione. Puoi scrivere questo primo programma in Golang seguendo i passaggi sottostanti.

Come installare Go su Windows

Come installare Go su Windows

Golang può essere facilmente installato su Windows. Di seguito è riportata una guida dettagliata passo dopo passo per installare Golang su Windows.

Metodi con lo stesso nome in Golang

Metodi con lo stesso nome in Golang

Golang consente di creare due o più metodi con lo stesso nome nello stesso pacchetto, ma i destinatari di questi metodi devono essere di tipo diverso.

Funzioni in Go

Funzioni in Go

In Go, le funzioni sono blocchi di codice che eseguono attività specifiche e possono essere riutilizzati nel programma per risparmiare memoria, migliorare la leggibilità e risparmiare tempo.

Ambito delle variabili in Go

Ambito delle variabili in Go

L'ambito di una variabile in Golang determina la parte del programma in cui tale variabile è accessibile. In Go, tutti gli identificatori hanno un ambito lessicale che viene determinato in fase di compilazione.

8 principali svantaggi degli smartphone con schermo pieghevole che non ti aspettavi

8 principali svantaggi degli smartphone con schermo pieghevole che non ti aspettavi

Non si può negare che i telefoni pieghevoli siano davvero fantastici. Ma dopo un po' di utilizzo, questo dispositivo inizia a presentare alcune stranezze. Ecco 5 svantaggi principali dei telefoni con schermo pieghevole che non ti aspetteresti!

Adobe porta la tecnologia di creazione video basata sullintelligenza artificiale su Premiere Pro

Adobe porta la tecnologia di creazione video basata sullintelligenza artificiale su Premiere Pro

Adobe ha reso accessibile al grande pubblico la tecnologia di creazione video basata sull'intelligenza artificiale in un modo del tutto nuovo, anche se non ha ancora creato un film completo utilizzando questa tecnologia.

Ultimi codici di Genshin Impact di aprile 2025

Ultimi codici di Genshin Impact di aprile 2025

Il codice Genshin Impact 5.5 ti aiuta a ottenere Pietre Primordiali, Minerali Magici, esperienza e molte altre ricompense.

Come trasformare il tuo iPad in un display Mac aggiuntivo

Come trasformare il tuo iPad in un display Mac aggiuntivo

macOS Catalina e iPadOS includono il supporto per una nuova funzionalità chiamata Sidecar, progettata per consentirti di usare il tuo iPad come display secondario per il tuo Mac.

Sfondo 1280, bellissimo sfondo del telefono Nokia 1280

Sfondo 1280, bellissimo sfondo del telefono Nokia 1280

Questo è un set di sfondi per Nokia 1280. Se hai mai inviato un messaggio per ottenere sfondi per 1280, sfondi per telefoni con mattoncini, prova a dare un'occhiata a questi sfondi.

Laereo spaziale ipersonico raggiunge la velocità di 11.115 km/h

Laereo spaziale ipersonico raggiunge la velocità di 11.115 km/h

Venus Aerospace ha rivelato le prime immagini del suo nuovo aereo ipersonico chiamato Stargazer, che può raggiungere una velocità massima di 11.115 km/h, pari a Mach 9.

Mangiare banane a colazione aiuta a ridurre il gonfiore

Mangiare banane a colazione aiuta a ridurre il gonfiore

Il gonfiore può capitare a chiunque. La buona notizia è che la colazione è il momento ideale per aggiungere al pasto alcuni ingredienti che aiutano a ridurre il gonfiore. L'ingrediente in questione è la banana.

OpenAI annuncia un importante aggiornamento per la generazione di immagini AI in ChatGPT

OpenAI annuncia un importante aggiornamento per la generazione di immagini AI in ChatGPT

OpenAI ha appena introdotto ufficialmente un notevole aggiornamento alla capacità di generazione di immagini AI in ChatGPT, un importante passo avanti rispetto all'utilizzo di un modello di generazione di immagini separato come il precedente DALL-E.

Deepseek rilascia il modello di linguaggio gratuito v3 che funziona bene sulle configurazioni hardware comuni

Deepseek rilascia il modello di linguaggio gratuito v3 che funziona bene sulle configurazioni hardware comuni

La startup cinese di intelligenza artificiale DeepSeek ha appena rilasciato ufficialmente il suo ultimo modello linguistico di grandi dimensioni (LLM), DeepSeek-V3-0324.

Motivi per abbandonare Gboard e passare alla tastiera Samsung

Motivi per abbandonare Gboard e passare alla tastiera Samsung

Gboard è da tempo la tastiera preferita sui telefoni Android. Tuttavia, di recente molte persone sono passate alla tastiera Samsung e non se ne sono più pentite.

Dolci e romantici auguri di fine settimana per gli innamorati

Dolci e romantici auguri di fine settimana per gli innamorati

Invia dolci e romantici auguri di buon fine settimana alla tua dolce metà. Sebbene siano solo parole o messaggi, saranno doni spirituali significativi, che contribuiranno a rafforzare la vostra relazione.

La serie TV di Harry Potter ha bisogno dei seguenti elementi per avere successo

La serie TV di Harry Potter ha bisogno dei seguenti elementi per avere successo

Il remake di Harry Potter della HBO dovrebbe debuttare nel 2026. Ecco cosa rende la serie TV di Harry Potter un successo.

Immagini mozzafiato della superluna da tutto il mondo

Immagini mozzafiato della superluna da tutto il mondo

Non è raro trovare su Internet delle belle foto della luna. L'articolo riassumerà per voi le più belle immagini della luna del mondo.

Gli utenti AMD Ryzen dovrebbero installare questo aggiornamento del BIOS per un aumento gratuito delle prestazioni

Gli utenti AMD Ryzen dovrebbero installare questo aggiornamento del BIOS per un aumento gratuito delle prestazioni

Ora AMD ha risposto ai problemi della sua linea di CPU di punta dalle prestazioni inferiori alle aspettative con un nuovo aggiornamento che potrebbe garantire qualche frame al secondo in più.

Il valore di X scende da 44 miliardi di dollari a meno di 10 miliardi di dollari

Il valore di X scende da 44 miliardi di dollari a meno di 10 miliardi di dollari

Nell'ottobre 2022, Elon Musk ha speso 44 miliardi di dollari per acquisire X, ma ad oggi il valore della piattaforma è sceso del 78,6%, attestandosi a circa 9,4 miliardi di dollari.