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 += 1x = 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로 변환, 소수 부분은 삭제됨
}

형 변환이 수행될 때, 실수를 정수로 변환할 때 발생하는 정밀도 손실과 같은 데이터의 안전을 보장해야 합니다.