Maison > développement back-end > Golang > Pourquoi est-ce que j'obtiens « Erreur de syntaxe : point-virgule ou nouvelle ligne inattendu avant le reste » dans mon code Go ?

Pourquoi est-ce que j'obtiens « Erreur de syntaxe : point-virgule ou nouvelle ligne inattendu avant le reste » dans mon code Go ?

Linda Hamilton
Libérer: 2024-11-02 12:40:02
original
386 Les gens l'ont consulté

Why am I Getting

Erreur de syntaxe imprévue : point-virgule inattendu ou nouvelle ligne avant "Else" dans Go

Le compilateur Go signale un message d'erreur énigmatique : "erreur de syntaxe : point-virgule ou nouvelle ligne inattendu avant le reste." Malgré une inspection minutieuse de la ligne 21, le code semble dépourvu de tout point-virgule ou nouvelle ligne incriminé.

En approfondissant, nous découvrons deux erreurs supplémentaires déroutantes aux lignes 28 et 32 : "déclaration de non-déclaration en dehors du corps de la fonction". Ces instructions résident dans la fonction main() et ne devraient pas être affectées par l'accolade fermante qui termine la fonction.

Les preuves suggèrent que les erreurs susmentionnées proviennent d'un problème sous-jacent à la ligne 21. Le langage Go introduit un point-virgule unique. comportement de gestion :

  • Les points-virgules sont automatiquement insérés à la fin des lignes contenant des jetons spécifiques, y compris les accolades fermantes }.
  • En conséquence, un point-virgule est ajouté après l'accolade fermante d'un if block.
  • Pour les instructions if {...} else {...}, cette insertion de point-virgule crée une erreur de syntaxe, car les points-virgules ne sont pas autorisés dans la clause else.

Pour résoudre ce problème, la clause else doit être placée sur la même ligne que l'accolade fermante du bloc if. Par exemple :

if len(current_mid) > 0 {
    processTopic(current_mid, current_topic, xmlFile)
} else {
    current_topic = make(map[string][]string)
}
Copier après la connexion

L'erreur du compilateur concernant « déclaration de non-déclaration en dehors du corps de la fonction » découle de l'exigence stricte de Go que les déclarations en dehors des corps de fonction soient des déclarations. Dans le cas des lignes 28 et 32, les expressions ne sont ni des déclarations ni une partie du corps de la fonction, d'où les messages d'erreur.

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!

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