Maison  >  Article  >  développement back-end  >  Pourquoi les points-virgules et les instructions en dehors des fonctions provoquent-ils des erreurs dans mon code Go ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 21:28:30707parcourir

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)
        }
...

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
...

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!

Déclaration:
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