"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment les énoncés «Defer» affectent-ils les valeurs de retour dans GO en fonction de la déclaration variable?

Comment les énoncés «Defer» affectent-ils les valeurs de retour dans GO en fonction de la déclaration variable?

Publié le 2025-03-23
Parcourir:953

How Do `defer` Statements Affect Return Values in Go Based on Variable Declaration?

Comprendre les modifications fonctionnelles en golang avec un redout

Dans Golang, DeFer permet aux développeurs de configurer des fonctions pour exécuter après une fonction conclue, permettant des nettoyages post-EXECUTIONS. Cependant, des problèmes peuvent survenir lors de la tentative de modification des valeurs variables déclarées de différentes manières de la même fonction.

Considérez l'exemple de code suivant:

func c(i int) int {
    defer func() { i   }()
    return i
}

func c1() (i int) {
    defer func() { i   }()
    return i
}

func c2() (i int) {
    defer func() { i   }()
    return 2
}

En C (0), en raison de je suis un paramètre d'entrée, la valeur renvoyée n'est pas affectée par l'incrément différé, résultant en une sortie d'impression de 0.

dans C1 (), I est le paramètre de résultat nommé, où la valeur de retour est explicitement attribuée à l'exécution de fonctions différente. Ainsi, l'incrément différé affecte la valeur renvoyée, donnant une sortie de 1.

Cependant, en c2 (), même si je suis renvoyé explicitement comme 2, l'incrément différé modifie le paramètre de résultat, ce qui résulte d'une valeur de retour de 3. qui spécifie les résultats définissent les paramètres de résultat avant que toutes les fonctions différées ne soient exécutées.

Pour les fonctions avec des paramètres de résultat nommés, les valeurs renvoyées sont toujours les valeurs de ces variables, mais les instructions de retour peuvent attribuer de nouvelles valeurs à ces paramètres. Les fonctions différées peuvent en outre modifier ces paramètres après l'instruction RETOUR.

Ce principe s'applique aux fonctions et aux méthodes, où les fonctions différées peuvent accéder et modifier les paramètres de résultat nommés avant leur retour. Par conséquent, il est crucial de considérer comment les déclarations variables et les modifications des fonctions différées ont un impact sur les valeurs renvoyées finales.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3