1 Golang 연산자 소개
Go 언어에서 연산자는 프로그램 코드 작업을 수행하는 데 사용되며, 산술 연산, 관계 비교, 논리 연산 등을 포함합니다. 다양한 연산자는 서로 다른 기능과 사용 시나리오에 대응합니다. 이러한 연산자를 이해하고 숙달하는 것은 효과적인 프로그래밍의 기초입니다.
2 산술 연산자
Go 언어는 다음과 같은 산술 연산자를 제공합니다:
- 덧셈 (+): 덧셈 작업
- 뺄셈 (-): 뺄셈 작업
- 곱셈 (*): 곱셈 작업
- 나눗셈 (/): 나눗셈 작업
- 나머지 (%): 모듈로 연산
예시:
package main
import "fmt"
func main() {
// 덧셈 작업
sum := 10 + 5
fmt.Println("10 + 5 =", sum) // 결과: 15
// 뺄셈 작업
diff := 10 - 5
fmt.Println("10 - 5 =", diff) // 결과: 5
// 곱셈 작업
prod := 10 * 5
fmt.Println("10 * 5 =", prod) // 결과: 50
// 나눗셈 작업
quot := 10 / 5
fmt.Println("10 / 5 =", quot) // 결과: 2
// 모듈로 연산
rem := 10 % 5
fmt.Println("10 % 5 =", rem) // 결과: 0
}
3 논리 연산자
Go 언어의 논리 연산자는 여러 조건을 연결하는 데 사용되며, 일반적으로 부울 값에 사용됩니다. AND (&&), OR (||), NOT (!) 세 가지 유형으로 구성됩니다.
3.1 AND (&&)
모든 조건이 참일 때 "AND" 연산의 결과는 참입니다.
예시:
package main
import "fmt"
func main() {
fmt.Println(true && true) // 결과: 참
fmt.Println(true && false) // 결과: 거짓
fmt.Println(false && false) // 결과: 거짓
// 모든 조건이 참일 때 결과는 참
}
3.2 OR (||)
하나 이상의 조건이 참이면 "OR" 연산의 결과는 참입니다.
예시:
package main
import "fmt"
func main() {
fmt.Println(true || true) // 결과: 참
fmt.Println(true || false) // 결과: 참
fmt.Println(false || false) // 결과: 거짓
// 하나 이상의 조건이 참이면 결과는 참
}
3.3 NOT (!)
조건의 부울 값을 반전합니다.
예시:
package main
import "fmt"
func main() {
fmt.Println(!true) // 결과: 거짓
fmt.Println(!false) // 결과: 참
// 부울 값 반전
}
4 비교 연산자
Go 언어의 비교 연산자는 두 변수 또는 값의 비교에 사용됩니다:
- 같음 (==)
- 같지 않음 (!=)
- 크다 (>)
- 작다 (<)
- 크거나 같다 (>=)
- 작거나 같다 (<=)
비교 연산의 결과는 부울 값인 참
또는 거짓
입니다.
5 비트 연산자
Go 언어에서 비트 연산자는 데이터의 이진 비트를 직접 조작할 수 있게 합니다:
- 비트 AND (&)
- 비트 OR (|)
- 비트 XOR (^)
- 비트 왼쪽 시프트 (<<)
- 비트 오른쪽 시프트 (>>)
비트 연산자는 주로 하드웨어 직접 조작, 암호화 등과 같은 저수준 프로그래밍에서 사용됩니다.
6 할당 연산자
할당 연산자는 변수에 값 할당에 사용됩니다. Go 언어에서는 다양한 형태의 할당 연산자가 있습니다:
- 단순 할당 (=)
- 덧셈 할당 (+=)
- 뺄셈 할당 (-=)
- 곱셈 할당 (*=)
- 나눗셈 할당 (/=)
- 모듈로 할당 (%=)
이러한 연산자는 코드를 더 간결하게 만듭니다. 예를 들어, x += 1
은 x = x + 1
과 동일합니다.
7 특수 연산자
7.1 증가 (++) 및 감소 (--) 연산자
증가 연산자 (++)와 감소 연산자 (--)는 각각 변수의 값을 1씩 증가시키거나 감소시키는 데 사용됩니다. 이러한 연산자는 변수 자체에 직접 작용하는 Go 언어에서 유일하게 사용되는 연산자입니다.
패키지 주요
import "fmt"
func main() {
x := 1
x++
fmt.Println("x++ =", x) // 출력 2
y := 10
y--
fmt.Println("y-- =", y) // 출력 9
}
Go 언어에서 x++
또는 x--
은 표현식의 일부가 될 수 없음에 유의하십시오. 예를 들어, z := x++
는 허용되지 않습니다.
7.2 유형 변환
Go 언어는 정적으로 타입이 지정되어 있으며, 한 번 변수가 선언되면 그 타입은 변경할 수 없습니다. 때로는 따라서 하나의 타입에서 다른 타입으로의 변수 변환이 필요할 수 있습니다. Go 언어는 자동 형 변환을 갖고 있지 않으며 명시적인 형 변환이 필요합니다.
예:
package main
import (
"fmt"
)
func main() {
var i int = 42
fmt.Println(float64(i)) // int를 float64로 변환
var f float64 = 3.14
fmt.Println(int(f)) // float64를 int로 변환, 소수 부분은 삭제됨
}
형 변환이 수행될 때, 실수를 정수로 변환할 때 발생하는 정밀도 손실과 같은 데이터의 안전을 보장해야 합니다.