언어 자료구조 알고리즘/구글 Go

[구글 Go 하자] 18. 자신의 값을 1 증가하거나 감소시키는 증감 연산자

언제나휴일 2016. 5. 30. 16:58
반응형

18. 자신의 값을 1 증가하거나 감소시키는 증감 연산자




 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 자신의 값을 1 증가하거나 감소시키는 증감 연산자를 알아보아요.


 증감 연산자는 변수의 값을 1 증가하거나 1 감소할 때 사용하는 단항 연산자예요. C언어에서는 증감 연산자의 결과를 다른 변수에 대입할 수 있지만 Go 언어에서는 증감 연산자의 결과를 사용할 수 없어요. 또한 C언어에서는 증감 연산자를 피연산자 앞에 오는 전위 표현을 사용할 수 있었지만 Go언어에서는 항상 피연산자 뒤에 와야 합니다.


 C언어에서 ++i 표현이나 i++ 표현은 모두 i를 1 증가하는 표현이예요. 하지만 증감 연산자가 피연산자의 앞에 오는 전위 표현과 뒤에 오는 후위 표현에 따라 연산의 결과는 차이가 있어요. 이는 개발자에게 혼돈을 줄 때가 많이 있었어요.


 Go 언어에서는 증감 연산자는 자기 자신을 1 증가하거나 감소할 때 사용하며 연산의 결과를 사용하지 못하게 함으로써 개발자의 혼돈을 줄이고 있어요.


 새 프로젝트를 생성하여 살펴보기로 해요.


LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가

[그림 1] LiteIDE에서 새 프로젝트 생성 및 소스 파일 추가



 

 테스트를 위해 정수 형식 변수 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)

증감 연산자 사용 예제 실행 화면

[그림 2] 증감 연산자 사용 예제 실행 화면



 다음처럼 증감 연산자를 피연산자 앞에 표현하면 컴파일 에러가 발생해요.

  • 전위 표현으로 증감 연산자를 사용하면 컴파일 에러

    ++i

증감 연산자를 전위로 표현하여 컴파일 에러가 발생

[그림 3] 증감 연산자를 전위로 표현하여 컴파일 에러가 발생


 다음처럼 증감 연산한 결과를 다른 변수에 대입하는 표현도 컴파일 에러를 발생합니다.

  • 증감 연산 결과를 다른 변수에 대입하면 컴파일 에러

    re = i++

증감 연산 결과를 다른 변수에 대입하여 컴파일 에러가 발생

[그림 4] 증감 연산 결과를 다른 변수에 대입하여 컴파일 에러가 발생


 이처럼 Go 언어에서는 C언어나 C++언어에서 표현이 가능하지만 개발자가 혼돈할 수 있는 표현을 컴파일 에러로 처리하여 모호함을 없앤 표현들이 많이 있어요.



관련 게시글

[구글 Go 하자] 14. Go 언어 연산자 개요

[구글 Go 하자] 15. 부호 연산자도 연산자

[구글 Go 하자] 16. 직관적인 사칙 연산과 비교해 보세요.

[구글 Go 하자] 17. 변수의 값을 특정 범위에서 순환하게 하기

[구글 Go 하자] 19. Go언어에서는 비교 연산자를 사용하는 곳이 많아요.

[구글 Go 하자] 20. Go언어의 논리 연산의 피연산자는 bool 형식만 올 수 있어요.

[구글 Go 하자] 21. 비트 단위로 연산하는 비트 연산자

[구글 Go 하자] 22. 쉬프트 연산은 비트 단위로 자리를 이동합니다.

[구글 Go 하자] 23. 다양한 대입 연산자, 좌항에 상수는 올 수 없어요.

반응형