안녕하세요. 언제나 휴일, 언휴예요.
이번에는 자신의 값을 1 증가하거나 감소시키는 증감 연산자를 알아보아요.
증감 연산자는 변수의 값을 1 증가하거나 1 감소할 때 사용하는 단항 연산자예요. C언어에서는 증감 연산자의 결과를 다른 변수에 대입할 수 있지만 Go 언어에서는 증감 연산자의 결과를 사용할 수 없어요. 또한 C언어에서는 증감 연산자를 피연산자 앞에 오는 전위 표현을 사용할 수 있었지만 Go언어에서는 항상 피연산자 뒤에 와야 합니다.
C언어에서 ++i 표현이나 i++ 표현은 모두 i를 1 증가하는 표현이예요. 하지만 증감 연산자가 피연산자의 앞에 오는 전위 표현과 뒤에 오는 후위 표현에 따라 연산의 결과는 차이가 있어요. 이는 개발자에게 혼돈을 줄 때가 많이 있었어요.
Go 언어에서는 증감 연산자는 자기 자신을 1 증가하거나 감소할 때 사용하며 연산의 결과를 사용하지 못하게 함으로써 개발자의 혼돈을 줄이고 있어요.
새 프로젝트를 생성하여 살펴보기로 해요.
// Example 자신의 값을 1 증가하거나 감소시키는 증감 연산자 package main import "fmt" func main() { var i int = 2 fmt.Println("i:", i) i++ //i는 1 증가하여 3으로 변함 fmt.Println("i:", i) i-- //i는 1 감소하여 2로 변함 fmt.Println("i:", i) }
테스트를 위해 정수 형식 변수 i를 선언하고 2로 초기화하세요.
var i int = 2 fmt.Println("i:", i)
증가 연산자를 사용하면 자기 자신을 1 증가하여 3으로 변해요.
- ++ 연산자(증가 연산자)
i++ //i는 1 증가하여 3으로 변함 fmt.Println("i:", i)
감소 연산자를 사용하면 자기 자신을 1 감소하여 2로 변해요.
- — 연산자(감소 연산자
i-- //i는 1 감소하여 2로 변함 fmt.Println("i:", i)
다음처럼 증감 연산자를 피연산자 앞에 표현하면 컴파일 에러가 발생해요.
- 전위 표현으로 증감 연산자를 사용하면 컴파일 에러
++i
[그림 3] 증감 연산자를 전위로 표현하여 컴파일 에러가 발생
다음처럼 증감 연산한 결과를 다른 변수에 대입하는 표현도 컴파일 에러를 발생합니다.
- 증감 연산 결과를 다른 변수에 대입하면 컴파일 에러
re = i++
이처럼 Go 언어에서는 C언어나 C++언어에서 표현이 가능하지만 개발자가 혼돈할 수 있는 표현을 컴파일 에러로 처리하여 모호함을 없앤 표현들이 많이 있어요.