L'erreur "Point-virgule ou nouvelle ligne inattendu avant else" se produit lorsqu'il y a un point-virgule ou une nouvelle ligne avant le mot-clé else dans un if -autre déclaration. Dans le code fourni, l'erreur est à la ligne 21 :
for err == nil{ subject, predicate, object := parseTriple(line) if subject == current_mid{ current_topic[predicate] = append(current_topic[predicate], object) } else if len(current_mid) > 0{ processTopic(current_mid, current_topic, xmlFile) current_topic = make(map[string][]string) } current_mid = subject line, err = r.ReadString('\n') }
Dans ce cas, il y a un caractère de nouvelle ligne après l'accolade fermante du bloc if, qui est à l'origine de l'erreur. Pour corriger l'erreur, l'instruction else if doit être placée sur la même ligne que l'accolade fermante :
for err == nil{ subject, predicate, object := parseTriple(line) if subject == current_mid{ current_topic[predicate] = append(current_topic[predicate], object) } else if len(current_mid) > 0{ processTopic(current_mid, current_topic, xmlFile) current_topic = make(map[string][]string) } current_mid = subject line, err = r.ReadString('\n') }
Dans Go, le point-virgule est utilisé pour terminer les instructions. Cependant, Go insère également automatiquement un point-virgule à la fin de certaines lignes, y compris les lignes qui se terminent par une accolade fermante }. Cela signifie que si vous avez un bloc if qui s'étend sur plusieurs lignes, vous devez placer l'instruction else sur la même ligne que l'accolade fermante, sinon Go insérera un point-virgule après l'accolade fermante et provoquera une erreur de syntaxe.
Les messages d'erreur sur les lignes 28 et 32 (« déclaration de non-déclaration en dehors du corps de la fonction ») sont également causés par l'erreur sur la ligne 21. L'accolade fermante sur la ligne 21 n'est pas correctement terminée, donc Go traite les lignes qui la suivent. comme s'ils étaient en dehors de la fonction principale. Pour corriger ces erreurs, vous devez d'abord corriger l'erreur à la ligne 21.
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!