• 회원가입
  • 로그인
  • 구글아이디로 로그인

GO - Data Types (고랭 데이터타입) - 자료형

2,122  
목차
  1. Go 자료형 종류
  2. Go Boolean (참거짓) 자료형
  3. Go Integer (정수) 자료형
  4. Go Float (부동소수) 자료형
  5. Go String (문자열) 자료형

 

Go 자료형 종류

 

  1. 프로그래밍에서 데이터타입은 매우 중요.
  2. 데이터타입은 변수 값의 크기와 타입 지정.
  3. Go는 정적 데이터타입임. (즉, 타입 지정 시, 해당 타입 데이터만 저장)
  4. Go는 크게 3가지 유형의 기본 데이터타입 가짐.
  • bool - 참거짓 형태 (true/false)
  • Numeric - 정수(int), 부동소수(float32/float64), 복소수(complex64/complex128)
  • string - 문자열

 


[예제]

 

package main

import ("fmt")


func main() {

  var a = true

  var b = 3

  var c = 3.14

  var d = 3 + 4i

  var e = "Homzzang.com"


  fmt.Printf("%v - %T\n", a, a) // true - bool

  fmt.Printf("%v - %T\n", b, b) // 3 - int

  fmt.Printf("%v - %T\n", c, c) // 3.14 - float64

  fmt.Printf("%v - %T\n", d, d)  // (3+4i) - complex128

  fmt.Printf("%#v - %T\n", e, e) // "Homzzang.com" - string

}

 

 

Go Boolean (참거짓) 자료형

 

  1. bool 키워드로 선언.
  2. true 또는 false 값만 가짐.
  3. 기본값은 false임.
  4. 조건문에서 주로 사용.

 


[예제]

 

package main

import ("fmt")

 

func main() {

  var a bool = true // 자료형 지정 O

  var b = true // 자료형 지정 X 경우, 값에서 유추.

  var c bool // 값 할당 안 하면, 기본값 false가 할당됨.

  d := true


  fmt.Println(a) // true

  fmt.Println(b) // true

  fmt.Println(c) // false

  fmt.Println(d) // true

}

 

 

Go Integer (정수) 자료형

 

정수는 소수점 없는 숫자 의미. (예) 1, 23, 345, -6789

 


 

1.

정수 자료형은 2가지 범주로 구분됨.

 

2.

정수의 기본 자료형은 int 이며, 미지정 시 int 자료형이 됨.

 


[부호 있는 정수]

 

  • 아래 5가지 int 키워드 중 하나로 선언.
  • 양수값과 음수값 모두 저장 가능.

 

int

플랫폼에 좌우. (32비트 경우 32bit, 64비트 경우 64bit)

32비트 경우: -2147483648 ~ 2147483647

64비트 경우: -9223372036854775808 ~ 9223372036854775807


int8

8 bit (= 1 byte)

-128 ~ 127


int16

16 bit (= 2 byte)

-32768 ~ 32767


int32

32 bit (= 4 byte)

-2147483648 ~ 2147483647


int64

64 bit (= 8 byte)

-9223372036854775808 ~ 9223372036854775807

 

 

(예제)

 

package main

import ("fmt")

 

func main() {

  var x int = 123

  var y int = -456

  fmt.Printf("값: %v, 타입: %T\n", x, x) // 값: 123, 타입: int

  fmt.Printf("값: %v, 타입: %T", y, y) // 값: -456, 타입: int

}

 


[부호 없는 정수]

 

  • 아래 5가지 uint 키워드 중 하나로 선언.
  • 음수값이 아닌 정수만 저장 가능.

 

uint

플랫폼에 좌우 (32 비트 경우 32bit, 64비트 경우 64bit)

32비트 경우: 0 ~ 4294967295

64비트 경우: 0 ~ 18446744073709551615


uint8

8 bit (= 1 byte)

0 ~ 255


uint16

16 bit (= 2 byte)

0 ~ 65535


uint32

32 bit (= 4 byte)

0 ~ 4294967295


uint64

64 bit (= 8 byte)

0 ~ 18446744073709551615

 

 

(예제)

package main

import ("fmt")

 

func main() {

  var x uint = 123

  var y uint = 0

  fmt.Printf("값: %v, 타입: %T\n", x, x) // 값: 123, 타입: uint

  fmt.Printf("값: %v, 타입: %T", y, y) // 값: 0, 타입: uint

}

 


[정수 자료형 선택 기준]

 

해당 정수 데이터를 모두 담을 수 있는 자료형 지정 필요.

만약, 지정 정수 자료형 벗어나는 정수 할당 시 오류 발생.

 

(예제) -  int8 자료형 경우, (-128 ~ 127) 사이의 정수만 할당 가능.

 

package main

import ("fmt")


func main() {

  var x int8 = 1234 // 에러 유발

  fmt.Printf("값: %v, 타입: %T", x, x) // 에러 발생

}

 

결과값:

# command-line-arguments

.\homzzang.go:8:6: constant 1234 overflows int8

 

Go Float (부동소수) 자료형

 

소수점 있는 숫자 저장에 사용. (예) 1.23, -4.567

 

1.

float 자료형 경우, 2가지 종류 존재.

  • float32 -32 bit (-3.4e+38 ~ 3.4e+38)
  • float64 - 64 bit (-1.7e+308 ~ +1.7e+308)

 

2.

float 기본 자료형은 float64이며, 자료형 미지정 시 float64로 설정됨.

 


[float32 경우]

 

package main

import ("fmt")

 

func main() {

  var x float32 = 123.45

  var y float32 = 3.4e+38

 

  fmt.Printf("값: %v, 타입: %T\n", x, x) // 값: 123.45, 타입: float32

  fmt.Printf("값: %v, 타입: %T", y, y) // 값: 3.4e+38, 타입: float32

}

 


[float64 경우]

float32보다 더 큰 숫자를 저장 가능.

 

package main

import ("fmt")

 

func main() {

  var x float64 = 1.7e+308

  

  fmt.Printf("값: %v, 타입: %T\n", x, x) // 값: 1.7e+308, 타입: float64

}

 


[부동소수 자료형 선택 기준]

 

해당 부동소수 데이터를 모두 담을 수 있는 자료형 지정 필요.

만약, 지정 부동소수 자료형 벗어나는 숫자 할당 시 오류 발생.

 

(예제) - float32 경우, (-3.4e+38 ~ 3.4e+38) 범위 숫자만 저장 가능.

 

package main

import ("fmt")


func main() {

  var x float32 = 3.4e+39 // 에러 유발

  fmt.Println(x) // 에러 발생

}

 

결과값:

# command-line-arguments

.\homzzang.go:8:6: constant 3.4e+39 overflows float32

 

Go String (문자열) 자료형

 

문자열 저장에 사용됨.

 

  • string 키워드로 선언
  • 문자열 데이터는 큰따옴표로 묶어야 함.
  • 기본값은 "" (즉, 빈 문자열)임.

 


[예제]

 

package main

import ("fmt")

 

func main() {

  var a string = "홈짱닷컴"

  var b string

  c := "Homzzang.com"

 

  fmt.Printf("값: %#v, 타입: %T\n", a, a)
  // 값: "홈짱닷컴", 타입: string

 

  fmt.Printf("값: %#v, 타입: %T\n", b, b)
  // 값: "", 타입: string

 

  fmt.Printf("값: %#v, 타입: %T\n", c, c)
  // 값: "Homzzang.com", 타입: string

}

 



제목
GO - Home (고랭 입문)
GO - Intro (고랭 소개)
GO - Start (고랭 시작)
GO - Syntax (고랭 구문)
GO - Comments (고랭 주석)
GO - Variables (고랭 변수)
GO - Constants (고랭 상수)
GO - Output (고랭 출력)
GO - Data Types (고랭 데이터타입) - 자료형
GO - Arrays (고랭 배열)
GO - Slices (고랭 슬라이스)
GO - Operators (고랭 연산자)
GO - Conditions (고랭 IF조건문)
GO - switch (고랭 스위치조건문)
GO - For Loops (고랭 FOR반복문)
GO - Functions (고랭 함수)
GO - Maps (고랭 맵)
목록
찾아주셔서 감사합니다. Since 2012