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

Pourquoi les points-virgules et les instructions en dehors des fonctions provoquent-ils des erreurs dans mon code Go ?

Susan Sarandon
Libérer: 2024-11-02 21:28:30
original
703 Les gens l'ont consulté

Why Are Semicolons and Statements Outside Functions Causing Errors in My Go Code?

Erreurs syntaxiques non résolues : examen des problèmes de « point-virgule inattendu » et de « déclaration de non-déclaration »

Dans le code fourni, vous rencontrez plusieurs erreurs, en particulier sur les lignes 21, 28 et 32. Examinons chaque erreur et sa résolution :

Erreur à la ligne 21 : point-virgule ou nouvelle ligne inattendu avant "else"

Cette erreur se produit car Go nécessite que le mot-clé « else » soit placé sur la même ligne que l'accolade fermante de son instruction « if » ou « else if » correspondante. Dans votre code, le bloc "if" se termine à la ligne 20 par un point-virgule, qui insère automatiquement un caractère de nouvelle ligne. Par conséquent, l'instruction "else" à la ligne 21 devient une instruction distincte, ce qui entraîne une erreur de syntaxe.

Solution :
Déplacez le mot-clé "else" vers la même ligne que l'instruction "else" accolade fermante du bloc "if", comme indiqué ci-dessous :

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

Erreurs sur les lignes 28 et 32 : déclaration de non-déclaration en dehors du corps de la fonction

Ces erreurs indiquez que vous avez des instructions (appels processTopic) placées en dehors du corps de la fonction main(). Dans Go, les déclarations de non-déclaration doivent apparaître dans les corps de fonction.

Solution :
Replacez les appels processTopic dans le corps de la fonction main(), comme illustré ci-dessous :

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

En corrigeant ces erreurs, votre code devrait maintenant être compilé avec succès. N'oubliez pas les règles suivantes pour éviter des problèmes similaires à l'avenir :

  1. "else" et "else if" doivent être déclarés sur la même ligne que l'accolade fermante de leur bloc if correspondant.
  2. Les déclarations de non-déclaration doivent être placées dans les corps de fonction.

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