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

Golang 기본 강의

Golang 제어 문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 동기

Golang 예외(Error)

Golang 다른 혼합

Go 언어 데이터 타입

데이터 타입이 정의된Go 변수저장할 수 있는 데이터 타입입니다. Go 언어에서 타입은 다음과 같은 네 가지 카테고리로 나뉩니다:

  1. 기본 타입:숫자, 문자열 및 부호가 이 카테고리에 속합니다.

  2. 집합 타입:배열과 구조체가 이 카테고리에 속합니다.

  3. 참조 타입:포인터, 슬라이스, 맵 집합, 함수 및 채널이 이 카테고리에 속합니다.

  4. 인터페이스 타입

여기서는 Go 언어의기본 데이터 타입.기본 데이터 타입세 가지 서브 카테고리로 더 나누어집니다: 기본 데이터 타입, 구조체, 함수 등.

  • Numbers

  • Booleans

  • Strings

숫자 타입

Go 언어에서 숫자는 다음과 같이 나누어집니다세 가지서브 카테고리:

  • 정수:Go 언어에서 부호 있는 정수형과 부호 없는 정수형은 모두 네 가지 다른 크기를 사용할 수 있습니다. 아래 표와 같이 나타납니다. 부호 있는 정수형은 int로 나타내며, 부호 없는 정수형은 uint로 나타냅니다.

    데이터 타입설명
    int88비트 부호 있는 정수형
    int1616비트 부호 있는 정수형
    int3232비트 부호 있는 정수형
    int6464비트 부호 있는 정수형
    uint88비트 부호 없는 정수형
    uint1616비트 부호 없는 정수형
    uint3232비트 부호 없는 정수형
    uint6464비트 부호 없는 정수형
    intin과 uint는 모두 동일한 크기를 가지고 있으며, 그 크기는 무엇이든32비트는 또한64비트.
    uintin과 uint는 모두 동일한 크기를 가지고 있으며, 그 크기는 무엇이든32비트는 또한64비트.
    rune그것은 int입니다32동의어이며 Unicode 코드 포인트도 나타냅니다.
    byte그것은 int입니다8동의어입니다.
    uintptr그것은 비트는 정수형입니다. 너비는 정의되지 않지만 포인터 값의 모든 비트를 포함할 수 있습니다.
    // 정수로 사용 
    package main  
    import "fmt"
             
    func main() { 
          
        // 사용8비트는 부호 없는 정수형입니다
        var X uint8 = 225 
        fmt.Println(X+1, X) 
          
        // 사용16비트는 부호 있는 정수형입니다
        var Y int16 = 32767 
        fmt.Println(Y+2, Y-2)  
    }

    출력:

    226 225
    -32767 32765
  • 부호 부호가 있는 수:Go 언어에서 부호 부호가 있는 수는 다음과 같이 나누어집니다2아래 표와 같이 표시된 것처럼:

    데이터 타입설명
    float3232IEEE 비트 754부호 부호가 있는 수
    float6464IEEE 비트 754부호 부호가 있는 수
    // 부호 부호가 있는 수 사용 
    package main  
    import "fmt"
             
    func main() { 
        a := 20.45 
        b := 34.89 
          
        //두 개의 부호 부호가 있는 수를 뺄 때
        c := b-a 
          
        //결과 표시 
        fmt.Printf("결과: %f", c) 
          
        //c 변수의 타입을 표시
        fmt.Printf("\nc의 타입은 : %T", c)   
    }

    출력:

    결과: 14.440000
    c의 타입은: float64
  • 복잡한 수:복잡한 수를 다음 표에 나타ně른 것처럼 두 부분으로 나눕니다. float32와 float64이것들은 이 복잡한 수의 일부입니다. 내장 함수는 그의 허황수와 실수 부분에서 복잡한 수를 생성하며, 내장 허황수와 실수 함수는 이 부분을 추출합니다.

    데이터 타입설명
    complex64float32실수와 허황수 구성 요소로 구성된 복잡한 수
    complex128float64실수와 허황수 구성 요소로 구성된 복잡한 수
    //복잡한 사용 
    package main 
    import "fmt"
      
    func main() { 
          
       var a complex128 = complex(6, 2) 
       var b complex64 = complex(9, 2) 
       fmt.Println(a) 
       fmt.Println(b) 
         
       //타입 표시 
      fmt.Printf("a의 타입은 %T 또는"+ "b의 타입은 %T", a, b) 
    }

    출력:

    (6+2i)
    (9+2i)
    a의 타입은 complex128 또한 b의 타입은 complex64

부울 타입

부울 데이터 타입은 true 또는 false만을 나타냅니다. 부울 타입의 값은 어떤 타입으로도 명시적이거나 비명시적으로 변환되지 않습니다.

//부울 값의 사용
package main
import "fmt"
func main() {
    //변수
    str1 := "w3codebox"
    str2 := "w3codebox"
    str3 := "w3codebox"
    result1 := str1 == str2
    result2 := str1 == str3
    //결과를 출력
    fmt.Println(result1)
    fmt.Println(result2)
    //result를 표시1와 result2의 타입
    fmt.Printf("result1 의 타입은 %T , "+"result2의 타입은 %T", result1, result2)
}

출력:

true
true
result1 의 타입은 bool , result2의 타입은 bool

문자열 타입

문자열 데이터 타입은 Unicode 코드 포인트의 시퀀스를 나타냅니다. 다시 말해, 우리는 문자열이 불변한 바이트 시퀀스라고 말할 수 있습니다. 이는 문자열이 생성되면 문자열을 변경할 수 없다는 의미입니다. 문자열은 인간이 읽을 수 있는 형식으로 0 값을 포함할 수 있는 어떤 데이터도 포함할 수 있습니다.

//문자열 사용
package main 
import "fmt"
  
func main() { 
      
    //문자열을 저장하는 str 변수
   str := "w3codebox"
     
   //문자열의 길이를 표시
   fmt.Printf("문자열의 길이:%d", len(str)) 
     
   //문자열을 표시 
   fmt.Printf("\n문자열은: %s", str) 
     
   // str 변수의 타입을 표시
   fmt.Printf("\nstr의 타입은: %T", str) 
}

출력:

문자열의 길이:5
문자열은: w3codebox
str의 타입은: string