"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go에서 \"구문 오류: Else 앞에 예기치 않은 세미콜론이 있습니다\"가 나타나는 이유는 무엇입니까?

Go에서 \"구문 오류: Else 앞에 예기치 않은 세미콜론이 있습니다\"가 나타나는 이유는 무엇입니까?

2024-11-07에 게시됨
검색:892

Why Am I Getting \

Go에서 Else 앞의 예기치 않은 세미콜론: 자세한 설명

Go 코드의 21번째 줄에서 비정상적인 오류가 발생했습니다: "구문 오류: 예상치 못한 else 앞에는 세미콜론이나 개행 문자를 사용하세요." 귀하의 주장에도 불구하고 자세히 살펴보면 이 줄의 "else" 문 앞에 실제로 세미콜론(;)이 있는 것으로 나타났습니다.

여기서 핵심 문제는 Go의 자동 세미콜론 삽입 규칙에서 비롯됩니다. 일반적으로 Go에서는 세미콜론이 선택 사항입니다. 그러나 컴파일러는 구문 무결성을 유지하기 위해 특정 줄 끝에 자동으로 삽입합니다. 그러한 경우 중 하나는 21행의 "if" 문을 닫는 경우와 같이 행이 닫는 중괄호 '}'로 끝나는 경우입니다.

이 동작은 후속 "else" 문에 장애물이 됩니다. Go에서 "else" 블록은 "if" 문의 닫는 중괄호와 같은 줄에 작성되어야 합니다. 따라서 컴파일러는 21행 끝에 세미콜론을 추가할 수 없습니다. 이는 잘못된 구문인 두 개의 별도 문을 생성하기 때문입니다.

이 문제를 해결하려면 닫는 중괄호 바로 뒤에 "else" 키워드를 배치하세요. 21행:

if subject == current_mid {
    current_topic[predicate] = append(current_topic[predicate], object)
} else {
    processTopic(current_mid, current_topic, xmlFile)
    current_topic = make(map[string][]string)
}

이 수정을 통해 Go의 구문에서 요구하는 대로 "if" 및 "else" 문이 단일 복합 문을 형성합니다.

28행과 32행의 오류와 관련하여 다음과 같습니다. "main" 함수 범위 밖의 명령문. Go에서 명령문은 자신이 속한 함수의 본문 내에 포함되어야 합니다. 이러한 오류를 수정하려면 "main" 함수 본문에 중괄호 '}' 안에 문을 포함하세요.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3