Home > Article > Backend Development > Why Are Semicolons and Statements Outside Functions Causing Errors in My Go Code?
Unresolved Syntactic Errors: Examining the "Unexpected Semicolon" and "Non-Declaration Statement" Issues
In the code provided, you encounter several errors, specifically on lines 21, 28, and 32. Let's delve into each error and its resolution:
Error on Line 21: Unexpected Semicolon or Newline Before "else"
This error occurs because Go requires the keyword "else" to be placed on the same line as the closing brace of its corresponding "if" or "else if" statement. In your code, the "if" block ends on line 20 with a semicolon, which automatically inserts a newline character. Consequently, the "else" statement on line 21 becomes a separate statement, resulting in a syntax error.
Solution:
Move the "else" keyword to the same line as the closing brace of the "if" block, as shown below:
... } else if len(current_mid) > 0 { processTopic(current_mid, current_topic, xmlFile) current_topic = make(map[string][]string) } ...
Errors on Lines 28 and 32: Non-Declaration Statement Outside Function Body
These errors indicate that you have statements (processTopic calls) placed outside the main() function's body. In Go, non-declaration statements must appear within function bodies.
Solution:
Move the processTopic calls back into the main() function body, as demonstrated below:
... } 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 ...
By addressing these errors, your code should now compile successfully. Remember the following rules to avoid similar issues in the future:
The above is the detailed content of Why Are Semicolons and Statements Outside Functions Causing Errors in My Go Code?. For more information, please follow other related articles on the PHP Chinese website!