>  기사  >  백엔드 개발  >  함수 외부의 세미콜론과 명령문이 내 Go 코드에서 오류를 일으키는 이유는 무엇입니까?

함수 외부의 세미콜론과 명령문이 내 Go 코드에서 오류를 일으키는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 21:28:30603검색

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

해결되지 않은 구문 오류: "예기치 않은 세미콜론" 및 "비선언문" 문제 조사

제공된 코드에서 여러 가지 문제가 발생합니다. 각 오류와 해결 방법을 자세히 살펴보겠습니다.

21행 오류: "else" 앞의 예기치 않은 세미콜론 또는 줄바꿈

이 오류는 Go에서 해당 "if" 또는 "else if" 문의 닫는 중괄호와 같은 줄에 키워드 "else"를 배치해야 하기 때문에 발생합니다. 코드에서 "if" 블록은 줄바꿈 문자를 자동으로 삽입하는 세미콜론으로 20행에서 끝납니다. 결과적으로 21행의 "else" 문은 별도의 문이 되어 구문 오류가 발생합니다.

해결책:
"else" 키워드를 아래와 같이 "if" 블록의 닫는 중괄호:

...
        } else if len(current_mid) > 0 {
            processTopic(current_mid, current_topic, xmlFile)
            current_topic = make(map[string][]string)
        }
...

28행과 32행의 오류: 함수 본문 외부의 비선언문

이러한 오류 main() 함수 본문 외부에 명령문(processTopic 호출)이 있음을 나타냅니다. Go에서는 비선언문이 함수 본문 내에 나타나야 합니다.

해결책:
아래 설명과 같이 processTopic 호출을 다시 main() 함수 본문으로 이동합니다.

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

이러한 오류를 해결하면 이제 코드가 성공적으로 컴파일됩니다. 향후 유사한 문제를 방지하려면 다음 규칙을 기억하세요.

  1. "else" 및 "else if"는 해당 if 블록의 닫는 중괄호와 같은 줄에 선언되어야 합니다.
  2. 비선언문은 함수 본문 내에 배치되어야 합니다.

위 내용은 함수 외부의 세미콜론과 명령문이 내 Go 코드에서 오류를 일으키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.