Home  >  Article  >  Backend Development  >  Why Are Semicolons and Statements Outside Functions Causing Errors in My Go Code?

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

Susan Sarandon
Susan SarandonOriginal
2024-11-02 21:28:30705browse

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:

  1. "else" and "else if" must be declared on the same line as the closing brace of their corresponding if block.
  2. Non-declaration statements must be placed within function bodies.

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn