English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

온라인 도구

Golang 기본 강의

Golang 제어 문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 동기

Golang 예외(Error)

Go 언어 연산자

O(파일 작업)

연산자는 모든 프로그래밍 언어의 기본입니다. 따라서 연산자를 사용하지 않으면 Go 언어의 기능이 부족합니다. 연산자는 연산자에 대한 다양한 유형의 연산을 수행할 수 있습니다. Go 언어에서는 연산자의 다른 기능에 따라 분류할 수 있습니다:

수학 연산자/이는 Go 언어의 연산자에 대한 수학 연산을 수행하는 데 사용됩니다

  • 수학 연산: +가법: + ” 연산자는 첫 번째 연산자를 두 번째 연산자로 나눕니다. 예를 들어, x

  • ” 연산자는 두 연산자를 더합니다. 예를 들어, x -뺄셈:-” 연산자는 첫 번째 연산자를 두 번째 연산자로 나눕니다. 예를 들어, x

  • ” 연산자는 두 연산자를 뺍니다. 예를 들어, x 나눗셈:*곱셈: * ” 연산자는 첫 번째 연산자를 두 번째 연산자로 나눕니다. 예를 들어, x

  • ” 연산자는 두 연산자를 곱합니다. 예를 들어, x 나눗셈:/” / ” 연산자는 첫 번째 연산자를 두 번째 연산자로 나눕니다. 예를 들어, x

  • y.나눗셈:

첫 번째 연산자가 두 번째 연산자로 나누어지면, '%' 연산자는 나머지를 반환합니다. 예를 들어, x%y. -주의:+,*,!,&,-,<++와 ^ 또는 일원 연산자로도 알려져 있으며, 일원 연산자의 우선순위가 더 높습니다.

package main
import "fmt"
func main() {
    p := 34
    q := 20
    // 가법
    result1 := p + q
    fmt.Printf("계산 결과 p + q = %d", result1)
    // 뺄셈
    result2 := p - q
    fmt.Printf("\n계산 결과 p - q = %d", result2)
    // 곱셈
    result3 := p * q
    fmt.Printf("\n계산 결과 p * q = %d", result3)
    // 나눗셈
    result4 := p / q
    fmt.Printf("\n계산 결과 p / q = %d", result4)
    // 모듈
    result5 := p % q
    fmt.Printf("\n결과 p %% q = %d", result5)
}

출력:

결과 p + q = 54
결과 p - q = 14
결과 p * q = 680
결과 p / q = 1
결과 p % q = 14

관계 연산자

관계 연산자는 두 가지 값을 비교하는 데 사용됩니다. 하나씩 보겠습니다:

  • 연산자는 두 개의 주어진 연산자가 같은지 확인합니다. 같으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어,5 == 5true를 반환합니다.

  • 연산자는 두 개의 주어진 연산자가 같은지 확인합니다. 다르면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어,5!= 5false를 반환합니다.

  • 연산자는 첫 번째 연산자가 두 번째 연산자보다 큰지 확인합니다. 크면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어,6> 5true를 반환합니다.

  • 연산자는 첫 번째 연산자가 두 번째 연산자보다 작은지 확인합니다. 작으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어,6 <5false를 반환합니다.

  • 연산자는 첫 번째 연산자가 두 번째 연산자보다 크거나 같은지 확인합니다. 크거나 같으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어,5>= 5true를 반환합니다.

  • 연산자는 첫 번째 연산자가 두 번째 연산자보다 작거나 같은지 확인합니다. 작거나 같으면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어,5 <= 5도 true를 반환합니다.

package main
import "fmt"
func main() {
    p := 34
    q := 20
    // ‘==’(적어도)
    result1 := p == q
    fmt.Println(result1)
    // ‘!=’(적어도)
    result2 := p != q
    fmt.Println(result2)
    // ‘<’(적어도)
    result3 := p < q
    fmt.Println(result3)
    // ‘>’(적어도)
    result4 := p > q
    fmt.Println(result4)
    // ‘>=’(적어도)
    result5 := p >= q
    fmt.Println(result5)
    // ‘<=’(적어도)
    result6 := p <= q
    fmt.Println(result6)
}

출력:

false
true
false
true
true
false

로직 연산자

두 가지나 더 많은 조건을 결합하는 데 사용됩니다/또는 추가로 고려되는 원래 조건의 평가

  • 로직 AND두 가지 조건 모두 만족되면, "&&" 연산자는 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어, a와 b 모두 참(즉, 0이 아님)인 경우, a && b는 참을 반환합니다.

  • 로직 또 한 가지(또는 두 가지) 조건이 만족되면, "||" 연산자는 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어, a나 b 중 하나가 참(즉, 0이 아님)인 경우, || b는 true를 반환합니다.もちろん, a와 b 모두 참인 경우에도 true를 반환합니다.

  • 로직 비 만족하지 않는 경우, "!" 연산자는 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 예를 들어, a가 거짓인 경우(즉 a = 0), !a는 true를 반환합니다.

package main
import "fmt"
func main() {
    var p int = 23
    var q int = 60
    if p != q && p <= q {
        fmt.Println("True")
    }
    if p != q || p <= q {
        fmt.Println("True")
    }
    if !(p == q) {
        fmt.Println("True")
    }
}

출력:

True
True
True

비트 연산자

Go 언어에서는 다음과 같은6비트 연산자는 비트 단위로 작동하거나 각 비트에 대한 연산을 위해 사용할 수 있습니다. 다음은 비트 연산자입니다:

  • &(비트 및):두 개의 숫자를 연산자로 사용하고, 두 개의 숫자의 각 비트에 '및' 연산을 수행합니다. 두 비트 모두1이 경우 AND 결과가1。

  • | (비트 또는):두 개의 숫자를 연산자로 사용하고, 두 개의 숫자의 각 비트에 '또는' 연산을 수행합니다. 두 비트 중 하나라도1OR 결과는1。

  • ^(비트 XOR):두 개의 숫자를 연산자로 사용하고, 두 개의 숫자의 각 비트에 XOR를 수행합니다. 두 비트가 다르면 XOR 결과는1。

  • <<(좌측 이동):두 개의 숫자를 가져와 첫 번째 연산자의 비트를 왼쪽으로 이동하고, 두 번째 연산자가 이동 비트를 결정합니다.

  • >>(우측 이동):두 개의 숫자를 가져와 첫 번째 연산자의 비트를 오른쪽으로 이동하고, 두 번째 연산자가 이동 비트를 결정합니다.

  • &^(AND NOT):(비트 캔슬) 연산자는 실제로 &(^) 연산을 수행합니다.

package main
import "fmt"
func main() {
    p := 134
    q := 320
    // & (AND)
    result1 := p & q
    fmt.Printf("계산 결과 p & q = %d", result1)
    // | (OR)
    result2 := p | q
    fmt.Printf("\n계산 결과 p | q = %d", result2)
    // ^ (XOR)
    result3 := p ^ q
    fmt.Printf("\n계산 결과 p ^ q = %d", result3)
    // << (좌측 이동)
    result4 := p << 1
    fmt.Printf("\n계산 결과 p << 1 = %d", result4)
    // >> (우측 이동)
    result5 := p >> 1
    fmt.Printf("\n계산 결과 p >> 1 = %d", result5)
    // &^ (AND NOT)
    result6 := p &^ q
    fmt.Printf("\n계산 결과 p &^ q = %d", result6)
}

출력:

계산 결과 p & q = 0
계산 결과 p | q = 454
계산 결과 p ^ q = 454
계산 결과 p << 1 = 268
계산 결과 p >> 1 = 67
계산 결과 p &^ q = 134

할당 연산자

변수에 값을 할당하는 연산자입니다. 할당 연산자의 왼쪽 연산자는 변수이고, 할당 연산자의 오른쪽 연산자는 값입니다. 오른쪽의 값은 왼쪽의 변수와 같은 데이터 타입이어야 하지 않으면 컴파일러가 오류를 표시합니다. 다양한 타입의 할당 연산자는 다음과 같습니다:

  • “ =”(简单赋值):이는 가장 간단한 대입 연산자입니다. 이 연산자는 오른쪽의 값을 왼쪽 변수에 할당하는 데 사용됩니다.

  • + ='(加法赋值):이 연산자는 '+'과 '=' 연산자의 조합입니다. 이 연산자는 왼쪽 변수의 현재 값을 오른쪽 값에 더한 후, 결과를 왼쪽 변수에 할당합니다.

  • -='(减法赋值):이 연산자는 '-'과 '=' 연산자의 조합입니다. 이 연산자는 오른쪽 값에서 왼쪽 변수의 현재 값을 뺄 후, 결과를 왼쪽 변수에 할당합니다.

  • * ='(乘法赋值):이 연산자는 '*'과 '=' 연산자의 조합입니다. 이 연산자는 먼저 왼쪽 변수의 현재 값을 오른쪽 값으로 곱한 후, 결과를 왼쪽 변수에 할당합니다.

  • / ='(除法赋值):이 연산자는 '/'과 '=' 연산자의 조합입니다. 이 연산자는 먼저 왼쪽 변수의 현재 값을 오른쪽 값으로 나눈 후, 결과를 왼쪽 변수에 할당합니다.

  • “%=”(모듈러 대입):이 연산자는 ‘%’와 ‘=’ 연산자의 조합입니다. 이 연산자는 먼저 왼쪽 변수의 현재 값을 오른쪽 변수의 값을 곱한 후, 결과를 왼쪽 변수에 할당합니다.

  • “&=”(비트단위와 대입):이 연산자는 '&', '=' 연산자의 조합입니다. 이 연산자는 먼저 왼쪽 변수의 현재 값을 오른쪽 변수와 '비트단위와' 연산을 수행한 후, 결과를 왼쪽 변수에 할당합니다.

  • “^ =”(비트단위 이지):이 연산자는 '^'과 '=' 연산자의 조합입니다. 이 연산자는 먼저 왼쪽 변수의 현재 값을 오른쪽 변수와 '비트단위 이지' 연산을 수행한 후, 결과를 왼쪽 변수에 할당합니다.

  • “| =”(비트단위 또는):이 연산자는 “|”과 '=' 연산자의 조합입니다. 이 연산자는 먼저 왼쪽 변수의 현재 값을 오른쪽 값과 '비트단위 또는' 연산을 수행한 후, 결과를 왼쪽 변수에 할당합니다.

package main 
    
import "fmt"
    
func main() { 
   var p int = 38
    var q int = 70
       
   // “=”(简单赋值) 
   p = q 
   fmt.Println(p) 
       
   // +=”(加法赋值) 
    p += q 
   fmt.Println(p) 
       
   //-=”(减法赋值) 
   p-=q 
   fmt.Println(p) 
       
   // *=”(乘法赋值) 
   p*= q 
   fmt.Println(p) 
       
   // /, 
    p /= q 
   fmt.Println(p) 
      
    // “%=”(모듈러 대입) 
    p %= q 
   fmt.Println(p) 
      
}

출력:

70
140
70
4900
70
0

杂项运算符

  • &:이 연산자는 변수의 주소를 반환합니다.

  • *:이 연산자는 변수에 대한 포인터를 제공합니다.

  • <-:이 연산자의 이름은 수신입니다. 이는 채널에서 값을 수신하는 데 사용됩니다.

package main 
    
import "fmt"
    
func main() { 
  a := 94
     
//연산자(&)와
//포인터 간접(*)연산자
  b := &a  
  fmt.Println(*b)  
  *b = 67 
  fmt.Println(a)  
}

출력:

94
67