Go에서 Else 앞의 예기치 않은 세미콜론: 자세한 설명
Go 코드의 21번째 줄에서 비정상적인 오류가 발생했습니다: "구문 오류: 예상치 못한 else 앞에는 세미콜론이나 개행 문자를 사용하세요." 귀하의 주장에도 불구하고 자세히 살펴보면 이 줄의 "else" 문 앞에 실제로 세미콜론(;)이 있는 것으로 나타났습니다.
여기서 핵심 문제는 Go의 자동 세미콜론 삽입 규칙에 있습니다. 일반적으로 Go에서는 세미콜론이 선택 사항입니다. 그러나 컴파일러는 구문 무결성을 유지하기 위해 특정 줄 끝에 자동으로 삽입합니다. 그러한 경우 중 하나는 21번째 줄에서 "if" 문을 닫는 경우처럼 줄이 닫는 중괄호 '}'로 끝나는 경우입니다.
이 동작은 후속 "else" 문에 장애물이 됩니다. Go에서 "else" 블록은 "if" 문의 닫는 중괄호와 같은 줄에 작성되어야 합니다. 따라서 컴파일러는 두 개의 별도 문을 생성하므로 21행 끝에 세미콜론을 추가할 수 없습니다. 이는 잘못된 구문입니다.
이 문제를 해결하려면 닫는 중괄호 바로 뒤에 "else" 키워드를 배치하세요. 21행:
<code class="go">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) }</code>
이 수정을 통해 Go의 구문에서 요구하는 대로 "if" 및 "else" 문이 단일 복합 명령문을 형성합니다.
28행과 "else" 행의 오류에 관해 32에서는 "main" 함수 범위 밖의 명령문과 관련이 있습니다. Go에서 명령문은 자신이 속한 함수의 본문 내에 포함되어야 합니다. 이러한 오류를 수정하려면 "main" 함수 본문에 중괄호 '}' 안에 명령문을 포함시키세요.
위 내용은 Go에서 \"구문 오류: Else 앞에 예기치 않은 세미콜론이 있습니다\"가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!