Mot-clé différé dans Golang

En Go, les instructions defer retardent l'exécution d'une fonction, d'une méthode ou d'une méthode anonyme jusqu'au retour des fonctions à proximité. En d'autres termes, les arguments pour différer les fonctions ou les méthodes sont évalués immédiatement, mais ils ne s'exécutent pas tant que les fonctions proches ne sont pas renvoyées. Vous pouvez créer une méthode, une fonction ou une fonction anonyme différée à l'aide du mot-clé defer.

Mot-clé différé dans Golang

Syntaxe:

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

Remarque importante :

  • Dans le langage Go, plusieurs instructions de report sont autorisées dans le même programme et elles sont exécutées dans l'ordre LIFO (dernier entré, premier sorti) comme indiqué dans l'exemple 2.
  • Dans les instructions defer, les arguments sont évalués lorsque l'instruction defer est exécutée, et non lorsqu'elle est appelée.
  • Les instructions de report sont souvent utilisées pour garantir que les fichiers sont fermés lorsque leur besoin prend fin, ou pour fermer des canaux, ou pour détecter des problèmes dans le programme.

Voyons maintenant un exemple pour mieux comprendre.

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

Résultat:

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

Explication : Dans l’exemple ci-dessus, nous avons deux fonctions nommées mul() et show() . Alors que la fonction show() est appelée normalement dans la fonction main() , la fonction mul() est appelée de deux manières différentes :

  • Tout d'abord, nous appelons la fonction mul normalement (sans le mot-clé defer), c'est-à-dire mul(23, 45) et elle s'exécute lorsque la fonction est appelée (Sortie : Résultat : 1035).
  • Deuxièmement, nous appelons la fonction mul() comme une fonction de report en utilisant le mot-clé defer, c'est-à-dire defer mul(23, 56) et elle s'exécute (Sortie : Résultat : 1288) lorsque toutes les méthodes environnantes reviennent.

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

Résultat:

Start
Result:  20
Result:  90
End

Laisser un commentaire

Comment jeter une batterie externe à Saint-Étienne ? Les solutions sûres et pratiques

Comment jeter une batterie externe à Saint-Étienne ? Les solutions sûres et pratiques

À Saint-Étienne, une batterie externe ne va ni dans la poubelle grise ni dans le bac jaune. Voici où la déposer, comment préparer une batterie intacte ou gonflée et quand choisir magasin ou déchèterie.

Comment jeter un téléviseur à Angers ? Guide pratique pour le déposer ou le faire reprendre

Comment jeter un téléviseur à Angers ? Guide pratique pour le déposer ou le faire reprendre

Téléviseur usagé à Angers : déchèterie, badge, reprise gratuite en magasin, préparation et erreurs à éviter pour recycler votre écran correctement.

Comment jeter de l’huile de cuisson usagée à Perpignan ?

Comment jeter de l’huile de cuisson usagée à Perpignan ?

Découvrez comment stocker et déposer l’huile de cuisson usagée à Perpignan sans boucher les canalisations, avec les précautions et vérifications locales.

Comment jeter des piles à Le Havre ? Les bons points de collecte et les règles à suivre

Comment jeter des piles à Le Havre ? Les bons points de collecte et les règles à suivre

À Le Havre, les piles usagées ne vont ni dans les ordures ménagères ni dans le bac jaune. Découvrez où les déposer, comment les préparer et que faire des batteries abîmées.

Comment jeter des piles à Toulon ? Points de collecte, magasins ou déchèterie

Comment jeter des piles à Toulon ? Points de collecte, magasins ou déchèterie

À Toulon, comparez les solutions pour jeter vos piles usagées : points de collecte, magasins et déchèterie, avec les précautions à connaître.

Comment jeter une batterie au lithium à Angers ? Les points de collecte et les précautions

Comment jeter une batterie au lithium à Angers ? Les points de collecte et les précautions

À Angers, découvrez où déposer une batterie au lithium, comment la sécuriser et quoi faire si elle est gonflée, endommagée ou chaude.

Comment jeter une batterie au lithium à Aix-en-Provence ?

Comment jeter une batterie au lithium à Aix-en-Provence ?

Découvrez où déposer une batterie au lithium à Aix-en-Provence et les précautions à prendre selon son état, sa taille et son appareil.

Comment jeter des néons à Nîmes ? Les bons points de collecte et les précautions à prendre

Comment jeter des néons à Nîmes ? Les bons points de collecte et les précautions à prendre

À Nîmes, les tubes fluorescents et LED ne vont pas à la poubelle. Découvrez où les déposer, comment les transporter et quoi faire s’ils se cassent.

Comment jeter un vélo à Perpignan ? Guide pratique du tri et du réemploi

Comment jeter un vélo à Perpignan ? Guide pratique du tri et du réemploi

Vélo usé à Perpignan : vérifiez le réemploi, le badge, l’adresse de la déchèterie et les précautions pour un vélo électrique.

Comment jeter un téléviseur à Reims ? Les solutions simples et les erreurs à éviter

Comment jeter un téléviseur à Reims ? Les solutions simples et les erreurs à éviter

À Reims, un téléviseur usagé est un DEEE : déchèterie, reprise en magasin ou enlèvement sur rendez-vous. Voici la marche à suivre sans erreur.