연산자(Operator)
산술 연산자
산술 연산자는 숫자 연산을 하는 연산자이다.
사칙 연산, 비트 연산, 시프트 연산이 이에 속한다.
구분 | 연산자 | 연산 | 피연산자 타입 |
---|---|---|---|
사칙 연산 | + | 덧셈 | 정수, 실수, 복소수, 문자열 |
사칙 연산 | - | 뻴셈 | 정수, 실수, 복소수 |
사칙 연산 | * | 곱셈 | 정수, 실수, 복소수 |
사칙 연산 | / | 나눗셈 | 정수, 실수, 복소수 |
사칙 연산 | % | 나머지 | 정수 |
비트 연산 | & | AND 비트 연산 | 정수 |
비트 연산 | | | OR 비트 연산 | 정수 |
비트 연산 | ^ | XOR 비트 연산 | 정수 |
비트 연산 | &^ | 비트 클리어 | 정수 |
시프트 연산 | << | 왼쪽 시프트 | 정수 << 양의 정수 |
시프트 연산 | >> | 오른쪽 시프트 | 정수 >> 양의 정수 |
논리 연산자
연산자 | 논리 연산 | 내용 |
---|---|---|
&& | AND | 양변이 모두 true이면 true 반환 |
|| | OR | 양변 중 하나라도 true이면 true 반환 |
! | NOT | true이면 false를 반한하고 false이면 true 반환 |
대입 연산자
대입 연산자 =는 우변의 값을 좌변(메모리 공간)에 복사한다.
이 때, 좌변은 반드시 저장할 공간이 있는 변수가 와야한다.
package main
import "fmt"
func main() {
var a int
a = 10 //대입 연산자
fmt.Println(a)
}
또한, 대입 연산자는 결과값을 반환하지 않는다 따라서 아래와 같은 구문은 오류를 발생시킨다.
var a int
var b int
a = b = 10 // b = 10은 결과값을 반환하지 않기 때문에 a에 대입할 수 없다.
복수 대입 연산자
Go에서는 여러개의 값을 한번에 대입할 수 있다.
var a int
var b int
a, b = 3, 4 // 여러개의 값 한번에 대입
복합 대입 연산자
타 언어와 마찬가지로, Go에서는 복합 대입 연산자를 지원한다.
Ex) +=, -=, *=, /=, %=
복합 대입 연산자도 값을 반환하지 않는다. 따라서, 아래와 같은 구문은 오류를 발생시킨다.
var a int
var b int
a = b += 2
증감 연산자
변수의 값을 1 증가시키거나, 1 감소하는 구문으로, ++와 -- 두 종류를 제공한다.
- ++ : 정수 타입 변수 뒤에 붙여쓰며, 해당 변수값을 1 증가시킨다.
- -- : 정수 타입 변수 뒤에 붙여쓰며, 해당 변수값을 1 감소시킨다.
그 외 연산자
연산자 | 설명 |
---|---|
[] | 배열의 요소에 접근할 때 사용 |
. | 구조체나 패키지 요소에 접근할 때 사용됨 |
& | 변수의 메모리 주솟값을 반환 |
* | 포인터 변수가 가리키는 메모리 주소에 접근함 |
... | 슬라이스 요소들에 접근하거나 가변 인수를 만들 때 사용됨 |
: | 배열의 일부분을 집어올 때 사용됨 |
<- | 채널에서 값을 빼거나 넣을 때 사용됨 |
Tucker의 Go 언어 프로그래밍 - 공봉식 지음
'CS' 카테고리의 다른 글
[Python] 함수의 매개변수와 lambda, map, filter (0) | 2022.10.12 |
---|---|
[JavaScript] 자바스크립트의 타입 변환 (0) | 2022.10.08 |
[JavaScript] 자바스크립트의 제어문 (0) | 2022.10.04 |
[JavaScript] 자바스크립트의 데이터 타입 (1) | 2022.10.04 |
[JavaScript] 표현식과 문 (0) | 2022.10.01 |
댓글