English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
데이터 타입이 정의된Go 변수저장할 수 있는 데이터 타입입니다. Go 언어에서 타입은 다음과 같은 네 가지 카테고리로 나뉩니다:
기본 타입:숫자, 문자열 및 부호가 이 카테고리에 속합니다.
집합 타입:배열과 구조체가 이 카테고리에 속합니다.
참조 타입:포인터, 슬라이스, 맵 집합, 함수 및 채널이 이 카테고리에 속합니다.
인터페이스 타입
여기서는 Go 언어의기본 데이터 타입.기본 데이터 타입세 가지 서브 카테고리로 더 나누어집니다: 기본 데이터 타입, 구조체, 함수 등.
Numbers
Booleans
Strings
Go 언어에서 숫자는 다음과 같이 나누어집니다세 가지서브 카테고리:
정수:Go 언어에서 부호 있는 정수형과 부호 없는 정수형은 모두 네 가지 다른 크기를 사용할 수 있습니다. 아래 표와 같이 나타납니다. 부호 있는 정수형은 int로 나타내며, 부호 없는 정수형은 uint로 나타냅니다.
데이터 타입 | 설명 |
---|---|
int8 | 8비트 부호 있는 정수형 |
int16 | 16비트 부호 있는 정수형 |
int32 | 32비트 부호 있는 정수형 |
int64 | 64비트 부호 있는 정수형 |
uint8 | 8비트 부호 없는 정수형 |
uint16 | 16비트 부호 없는 정수형 |
uint32 | 32비트 부호 없는 정수형 |
uint64 | 64비트 부호 없는 정수형 |
int | in과 uint는 모두 동일한 크기를 가지고 있으며, 그 크기는 무엇이든32비트는 또한64비트. |
uint | in과 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아래 표와 같이 표시된 것처럼:
데이터 타입 | 설명 |
---|---|
float32 | 32IEEE 비트 754부호 부호가 있는 수 |
float64 | 64IEEE 비트 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이것들은 이 복잡한 수의 일부입니다. 내장 함수는 그의 허황수와 실수 부분에서 복잡한 수를 생성하며, 내장 허황수와 실수 함수는 이 부분을 추출합니다.
데이터 타입 | 설명 |
---|---|
complex64 | float32실수와 허황수 구성 요소로 구성된 복잡한 수 |
complex128 | float64실수와 허황수 구성 요소로 구성된 복잡한 수 |
//복잡한 사용 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