Language/Go

golang 데이터 타입

마루바오 2019. 12. 13. 16:37

1. 데이터 타입

자료형 범위  
uint8 0 ~ 255 부호 없는 8비트 정수형
uint16 0 ~ 65,535  부호 없는 16비트 정수형
uint32 0 ~ 4,294,967,295  부호 없는 32비트 정수형
uint64 0 ~ 18,446,744,073,709,551,615 부호 없는 64비트 정수형
uint   32비트 시스템에서는 uint32, 64비트 시스템에서는 uint64
int8 -128 ~ 127  부호 있는 8비트 정수형 
int16 -32,768 ~ 32,767  부호 있는 16비트 정수형
int32 -2,147,483,648 ~ 2,147,483,647 부호 있는 32비트 정수형
int64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 부호 있는 64비트 정수형
int   32비트 시스템에서는 int32, 64비트 시스템에서는 int64
float32   IEEE-754 32비트 부동소수점, 7자리 정밀도
float64   IEEE-754 64비트 부동소수점, 12자리 정밀도
complex64   float32 크기의 실수부와 허수부로 구성된 복소수
complex128   float64 크기의 실수부와 허수부로 구성된 복소수
uintptr   uint와 같은 크기를 갖는 포인터형
bool   참, 거짓을 표현하기 위한 8비트 자료형
byte   8비트 자료형
rune   유니코드 저장을 위한 자료형, 크기는 int32와 동일
string   문자열을 저장하기 위한 자료

2. 데이터 타입 변환

데이터 타입을 변환하기 위해서는 Type(value) 와 같이 표현합니다

아래는 소스 코드와 출력 결과 입니다.

package main

func main() {
  var i int = 10
  var u uint = uint(i)
  var f float32 = float32(u)
  println(f, u)

  strA := "marubao"
  bytes := []byte(strA)
  strB := string(bytes)
  println(bytes, strB)                                                                                                                                                                                                                                                        
}
[marubao@localhost go]$ go run src/main.go 
+1.000000e+001 10
[7/32]0xc000034720 marubao

주의 할 점은 Go는 int에서 uint로 변환 할때도 암묵전 변환이 일어나지 않으므로 반드시 uint(i) 처럼 변환 타입을 지정해 주어야 합니다.