Maison > développement back-end > Golang > le corps du texte

Comment une fonction subordonnée peut-elle affecter le flux d'exécution de sa fonction parent dans Go ?

Susan Sarandon
Libérer: 2024-11-15 19:50:03
original
362 Les gens l'ont consulté

How Can a Subordinate Function Affect the Execution Flow of its Parent Function in Go?

Retour d'une fonction subordonnée dans une fonction parent

En programmation, il est souvent nécessaire qu'une fonction termine l'exécution de sa fonction parent. Ceci peut être réalisé par diverses méthodes, en fonction du langage de programmation et des exigences spécifiques du programme.

L'une de ces méthodes consiste à utiliser l'instruction return dans la fonction subordonnée. Lorsqu'une fonction rencontre une instruction return, elle quitte immédiatement la fonction et rend le contrôle à la fonction appelante.

Dans l'exemple de code fourni :

func apiEndpoint() {
    if false {
        apiResponse("error")
        // I want apiResponse() call to return (end execution) in parent func
        // so next apiResponse("all good") wont be executed
    }

    apiResponse("all good")
}

func apiResponse(message string) {
    // returns message to user via JSON
}
Copier après la connexion

L'intention est de terminer l'exécution dans le fonction parent apiEndpoint() lors de l'appel de la fonction subordonnée apiResponse(). Cependant, en Go, une fonction ne peut pas contrôler directement le flux d’exécution de son appelant. L'appelant est responsable de la fin de l'exécution.

Une solution à ce problème consiste à utiliser une instruction if-else dans la fonction parent :

func apiEndpoint() {
    if someCondition {
        apiResponse("error")
    } else {
        apiResponse("all good")
    }
}
Copier après la connexion

Dans cet exemple, apiResponse("error" ) ne sera exécuté que si someCondition est vraie. Sinon, apiResponse("all good") sera exécuté.

Une autre solution consiste à utiliser l'instruction return dans la fonction parent :

func apiEndpoint() int {
    if someCondition {
        return apiResponse("error")
    }

    return apiResponse("all good")
}

func apiResponse(message string) int {
    return 1 // Return an int
}
Copier après la connexion

Dans cet exemple, la fonction apiEndpoint() renvoie la valeur de la fonction apiResponse(). Si someCondition est vraie, la fonction apiEndpoint() renvoie le message d'erreur. Sinon, il renvoie le message de réussite.

Il est important de noter que, en général, les fonctions ne peuvent pas contrôler l'exécution de leurs appelants. Ils ne peuvent renvoyer que des valeurs ou déclencher des exceptions, qui sont ensuite gérées par l'appelant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal