연산자
Go 언어는 다른 언어에서와 비슷하게 산술연산자, 관계연산자, 논리연산자, Bitwise 연산자, 할당연산자, 포인터연산자 등을 지원한다.
1. 산술연산자
산술연산자는 사칙연산자(+, -, *, /, % (Modulus))와 증감연산자(++, –)를 사용한다.
1
2
|
c = (a + b) / 5; i++; |
2. 관계연산자
관계연산자는 서로의 크기를 비교하거나 동일함을 체크하는데 사용된다.
1
2
3
|
a == b a != c a >= b |
3. 논리연산자
논리연산자는 AND, OR, NOT을 표현하는데 사용된다.
1
2
|
A && B A || !(C && B) |
4. Bitwise 연산자
Bitwise 연산자는 비트단위 연산을 위해 사용되는데, 바이너리 AND, OR, XOR와 바이너리 쉬프트 연산자가 있다.
1
|
c = (a & b) << 5 |
5. 할당연산자
할당연산자는 값을 할당하는 = 연산자 외에 사칙연산, 비트연산을 축약한 +=, &=, <<= 같은 연산자들도 있다.
1
2
3
4
|
a = 100 a *= 10 a >>= 2 a |= 1 |
6. 포인터연산자
포인터연산자는 C++와 같이 & 혹은 * 을 사용하여 해당 변수의 주소를 얻어내거나 이를 반대로 Dereference 할 때 사용한다. Go 는 비록 포인터연산자를 제공하지만 포인터 산술 즉 포인터에 더하고 빼는 기능은 제공하지 않는다.
1
2
3
|
var k int = 10 var p = &k //k의 주소를 할당 println(*p) //p가 가리키는 주소에 있는 실제 내용을 출력 |