Golang est un langage de programmation rigoureux, et son mécanisme de vérification de type statique peut nous rendre plus confiants et sécurisés lors de l'écriture de code. Cependant, dans la pratique, nous rencontrons parfois des messages d’erreur incompréhensibles, notamment des erreurs « retour manquant… ». La raison de cette erreur est relativement simple, c'est-à-dire qu'il y a certaines branches dans le corps de la fonction qui n'ont pas de valeurs de retour. Alors, comment devrions-nous résoudre cette erreur ?
En Golang, nos fonctions doivent renvoyer un certain type. Si une fonction définit un type de retour, la fonction doit garantir qu'il existe une valeur de retour dans chaque chemin. Si vous n'êtes pas sûr que chaque chemin renverra une valeur, vous devez modifier le flux de la fonction ou ajouter une instruction return sous certaines conditions. Voici quelques façons de résoudre cette erreur :
Le moyen le plus simple est d'ajouter une instruction return pour chaque branche qui doit être renvoyée. Par exemple, voici un exemple de fonction :
func divide(x, y int) float64 { if y == 0 { return 0.0 } return float64(x) / float64(y) }
Cette fonction accepte deux paramètres entiers et renvoie un nombre à virgule flottante. Si le deuxième argument est zéro, 0,0 est renvoyé. Sinon, le quotient de x et y est renvoyé. La première branche de cette fonction a déjà une instruction return, mais il en manque une dans la deuxième branche. Nous devons donc ajouter une instruction return dans la deuxième branche pour résoudre l'erreur.
func divide(x, y int) float64 { if y == 0 { return 0.0 } return float64(x) / float64(y) }
Si vous avez de nombreuses branches dans une fonction, l'ajout d'une instruction return pour chaque branche peut devenir fastidieux. Dans ces cas, nous pouvons ajouter une instruction return par défaut pour gérer les branches sans valeur de retour. Par exemple :
func divide(x, y int) float64 { if y == 0 { return 0.0 } if x < y { return 0.0 } return float64(x) / float64(y) }
Dans l'exemple ci-dessus, si x est inférieur à y, alors 0,0 est renvoyé, sinon la troisième branche est exécutée et la valeur correcte est renvoyée.
Parfois, certaines branches de la fonction doivent provoquer des erreurs, telles que les paramètres d'entrée ne répondent pas aux exigences. Dans ce cas, nous devons ajouter une instruction de panique pour arrêter l'exécution du programme et signaler une erreur. Par exemple :
func divide(x, y int) float64 { if y == 0 { panic("分母不能为零") } return float64(x) / float64(y) }
Dans l'exemple ci-dessus, si le dénominateur est zéro, la fonction émettra une panique et arrêtera l'exécution du programme.
Résumé
Dans Golang, la fonction doit être sûre que chaque chemin a une valeur de retour. Sinon, nous devons ajouter une instruction return par défaut ou modifier le flux du corps de la fonction. Si certaines conditions empêchent l'exécution de la fonction, nous devons ajouter une instruction de panique pour signaler l'erreur. Grâce à ces méthodes, nous pouvons éviter les erreurs de « retour manquant... » et assurer la stabilité et la fiabilité de notre code.
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!