더북(TheBook)

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 ++

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.