2.1.3 모호한 요소 제거
Go는 코드를 작성할 때 혼동을 줄 수 있는 모호한 문법을 피했다. ++와 -- 같은 증감 연산자는 후치 연산으로만 사용할 수 있고, 증감 연산은 반환 값이 없다. 즉, i = i++ 또는 ++i 같은 코드는 허용하지 않는다. 그리고 C나 C++처럼 변수의 메모리 주소에 접근할 수 있게 포인터 사용을 허용하지만, 포인터 연산은 허용하지 않는다. 이는 포인터의 과다한 사용으로 코드가 복잡해지는 것을 방지하기 위해서다.
▼ 증감 연산은 반환 값이 없음
package main import "fmt" func main() { sum, i := 0, 0 for i < 10 { sum += i++ // 증감 연산은 반환 값이 없음. 컴파일 에러 발생 } fmt.Println(sum) }
실행 결과
prog.go:8: syntax error: unexpected ++, expecting semicolon or newline or }
▼ 증감 연산자의 전치 연산은 허용하지 않음
package main import "fmt" func main() { sum, i := 0, 0 for i < 10 { sum += i ++i // 증감 연산자의 전치 연산은 허용하지 않음. 컴파일 에러 발생 } fmt.Println(sum) }
실행 결과
prog.go:9: syntax error: unexpected ++