Hubeen's Home



Merry Chritmas !


1. 연산자


이번 강좌에서는 Go 언어에서 사용하는 연산자에 대해 알아보겠습니다.

연산자에는 여러 종류의 연산자가 있습니다.

모두 다 외울 필요는 없습니다!

아래 표에 정리된 연산자들에 대해서 배워보도록 하겠습니다.


 분류

 연산자

 수식 연산자

 +, -, *, /, %

 증감 연산자

 ++, --

 할당 연산자

 =, :=, +=, -=, *=, /=, %=, &=, |=, ^=, &^=, =<<, =>>

 논리 연산자

 &&, ||, !

 관계 연산자

 ==, !=, <, <=, >, >=

 비트 연산자

 &, |, ^, &^, <<, >>, ^

 채널 연산자

 <-

 메모리(?)

 &, *



(1) 수식 연산자


수식 연산자에는 덧셈, 뺄셈, 나눗셈, 그리고 나눗셈을 한 뒤의 나머지 구하는 연산자들이 있습니다.

아래에는 그 연산자들을 표로 정리한 것입니다.



 분류

 기능

 설명

 +

 덧셈

 두 값을 더합니다.

※ 값의 자료형은 정수, 실수, 복소수, 문자열입니다.

 -

 뺄셈

 두 값을 뺍니다.

※ 값의 자료형은 정수, 실수, 복소수입니다.

 *

 곱셈

 두 값을 곱합니다.

※ 값의 자료형은 정수, 실수, 복소수입니다.

 /

 나눗셈

 두 값을 나눕니다.

※ 값의 자료형은 정수, 실수, 복소수입니다.

 %

 나머지

 두 값을 나눈 뒤 나머지를 구합니다.

※ 값의 자료형은 정수입니다.


아래에 있는 코드는 수식 연산자를 사용하여 그 결과를 출력하는 예제입니다.



(2) 증감 연산자


증감 연산자에서는 값을 1만큼 증가시키는 증가 연산자와 1만큼 감소시키는 감소 연산자가 있습니다.
아래에는 그 연산자들을 표로 정리한 것입니다.

 분류

 기능

 설명

 ++

 값을 1만큼 증가

 값을 1만큼 증가합니다.

Go 언어에서는 ++연산자를 사용한 뒤 값을 대입할 수 없습니다.

변수 뒤에서만 사용할 수 있습니다.

ex) count++ (O), bount := count++ (X)

※ 값의 자료형은 정수, 실수, 복소수입니다.

 --

 값을 1만큼 감소

 값을 1만큼 감소합니다.

Go 언어에서는 --연산자를 사용한 뒤 값을 대입할 수 없습니다.

변수 뒤에서만 사용할 수 있습니다.

ex) count-- (O), bount := count-- (X)

※ 값의 자료형은 정수, 실수, 복소수입니다.


아래에 있는 코드는 증감 연산자를 사용하여 그 결과를 출력하는 예제입니다.




(3) 할당 연산자


할당 연산자에서는 말 그대로 연산을 한 뒤에 그 값을 할당합니다.

아래에는 그 연산자들을 표로 정리한 것입니다.



 분류

 기능

 설명

 =

 대입

 변수나 상수에 값을 대입합니다.

※ 변수는 변수끼리 대입을 할 수 있습니다.

 :=

 변수 선언 및 대입

 변수 선언 및 대입

변수를 선언하는 동시에 값을 대입할 수 있습니다.

 +=

 덧셈 후 대입

 현재 변수와 값을 더한 후에 다시 변수에 대입합니다.

※ 문자열일 경우 현재 변수에 문자열을 붙인 다음 다시 변수에 대입합니다.

 -=

 뺄셈 후 대입

 현재 변수에서 값을 뺀 다음 다시 변수에 대입합니다.

 *=

 곱셈 후 대입

 현재 변수에서 값을 곱한 다음 다시 변수에 대입합니다.

 /=

 나눗셈 후 대입

 현재 변수에서 값을 나눈 다음 다시 변수에 대입합니다.

 %=

 값의 나머지를 대입

 현재 변수와 값의 나머지를 변수에 대입합니다.

 &=

 AND 비트 연산 후 대입

 현재 변수를 값으로 AND 연산한 다음 다시 변수에 대입합니다.

 |=

 OR 비트 연산 후 대입

 현재 변수를 값으로 OR 연산한 다음 다시 변수에 대입합니다.

 ^= XOR 비트 연산 후 대입 현재 변수를 값으로 XOR 연산한 다음 다시 변수에 대입합니다.
 &^= AND NOT 비트 연산 후 대입 현재 변수를 값으로 AND NOT 연산한 다음 다시 변수에 대입합니다.
 <<= 비트를 왼쪽으로 이동 후 대입 현재 변수를 값 만큼 왼쪽으로 이동한 다음 다시 변수에 대입합니다.

 >>=

 비트를 오른쪽으로 이동 후 대입 현재 변수를 값 횟수만큼 오른쪽으로 이동한 다음 다시 변수에 대입합니다. 


아래에 있는 코드는 할당 연산자를 사용하여 그 결과를 출력하는 예제입니다.




bit





(4) 논리 연산자


논리 연산자는 참, 거짓 두가지 원소만 존재하는 집함에서의 연산입니다.

흔히 비트 연산이라고도 합니다.


밑에 있는 표는 연산자들의 진리표입니다.


 A

 B

 OUT

 0

 0

 0

 0

 1

 0

 1

 0

 0

 1

 1

 1

[ && 연산자의 진리표 ]


 A

 B

 OUT

 0

 0

 0

 0

 1

 1

 1

 0

 1

 1

 1

 1

[ || 연산자의 진리표 ]


 A

 OUT

 0

 1

 1

 0

[ ! 연산자의 진리표 ]


아래에 있는 코드는 논리 연산자를 사용하여 그 결과를 출력하는 예제입니다.




(5) 관계 연산자


관계 연산자는 두 값의 관계를 알아보는 연산자입니다.

크기를 비교하거나 값이 서로 같거나 다른지 확인하는 연산자들이 있습니다.

아래는 관계 연산자를 표로 정리해 둔 것입니다. 


 분류

 기능

 설명

 ==

 같음

 두 값이 같으면 참을 반환하며 다를 경우 거짓을 반환합니다.

 !=

 다름

 두 값이 다르면 참을 반환하며 다를 경우 거짓을 반환합니다.

 <

 작음

 왼쪽 값이 크면 참을 반환하며 다를 경우 거짓을 반환합니다.

 <=

 같거나 작음

 오른쪽 값과 왼쪽 값이 같거나 왼쪽 값이 클 경우 참을 반환하며 다를 경우 거짓을 반환합니다.

 >

 큼

 오른쪽 값과 왼쪽 값이 같거나 왼쪽 값이 클 경우 참을 반환하며 다를 경우 거짓을 반환합니다.

 >=

 같거나 큼

 오른쪽 값과 왼쪽 값이 같거나 왼쪽 값이 클 경우 참을 반환하며 다를 경우 거짓을 반환합니다.


아래에 있는 코드는 관계 연산자를 사용하여 그 결과를 출력하는 예제입니다.






(6) 비트 연산자


비트 연산자는  말 그대로 비트를 다루는 연산자입니다.

아래는 비트 연산자를 표로 정리해 둔 것입니다.


 분류

 기능

 설명

 &

 AND 비트 연산

 두 값을 비트 단위로 AND 연산을 합니다.

 |

 OR 비트 연산

 두 값을 비트 단위로 OR 연산을 합니다.

 ^

 XOR 비트 연산

 두 값을 비트 단위로 XOR 연산을 합니다.

※ 사용할 수 있는 값의 자료형은 정수입니다.

 &^

 AND XOR 비트 연산

 두 값을 비트 단위로 AND NOT 연산을 합니다.

※ 사용할 수 있는 값의 자료형은 정수입니다.

 <<

 비트를 왼쪽으로 이동

 현재 값의 비트를 값 만큼 왼쪽으로 이동합니다.

※ 사용할 수 있는 값의 자료형은 정수입니다.

 >>

 비트를 오른쪽으로 이동

 현재 값의 비트를 값 만큼 오른쪽으로 이동합니다.

※ 사용할 수 있는 값의 자료형은 정수입니다.


아래에 있는 코드는 비트 연산자를 사용하여 그 결과를 출력하는 예제입니다.




(7) 채널 연산자


채널 연산자는 채널을 사용할 때 이용하는 연산자입니다.

채널이랑 고루틴끼리 데이터를 주고 받고, 실행 흐름을 제어하는 기능입니다.

이 채널이라는 것은 후에 자세히 설명할 예정이오니 이러한 녀석도 있구나! 하고 보시면 되겠습니다.

아래는 채널 연산자를 표로 정리해 둔 것입니다.



 분류

 기능

 설명

 <-

 채널 수신 연산

 채널에 값을 보내거나 값을 가져옵니다.


아래에 있는 코드는  채널 연산자를 사용하는 예제입니다.






(8) 메모리(?)


이걸 연산자라고 해야될지 뭐라해야할 지 잘 모르겠습니다...

그냥 설명을 안할까 싶기도 했지만 그냥 하는 것이 좋을 것 같아 추가로 작성하겠습니다.

이 녀석은 쉽게 생각하자면 포인터같은 개념입니다.

메모리에 접근이 가능합니다.

아래는 메모리를 접근할 수 있는 아이들을 표로 정리해 둔 것입니다.


 분류

 기능

 설명

 &

 참조

 현재 변수의 메모리 주소를 구합니다.

 *

 역 참조

 현재 포인터 변수에 저장된 메모리에 접근하여 값을 가져오거나 저장합니다.


아래에 있는 코드는  위의 표에 있는 아이들을 사용하는 예제입니다.




이번 강좌에 많은 연산자들에 대한 설명이 끝났습니다.

이 긴 글을 읽어주셔서 감사합니다.


다음 강좌에서는 패키지 사용법조건문에 대해 알아보도록 하겠습니다.

Comment 0