Maison > Article > développement back-end > Pourquoi est-ce que j'obtiens « Erreur de syntaxe : point-virgule ou nouvelle ligne inattendu avant le reste » dans mon code Go ?
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 :
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) }
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!