목차
Go 자료형 종류
Go Boolean (참거짓) 자료형
Go Integer (정수) 자료형
Go Float (부동소수) 자료형
Go String (문자열) 자료형
Go 자료형 종류
프로그래밍에서 데이터타입은 매우 중요.
데이터타입은 변수 값의 크기와 타입 지정.
Go는 정적 데이터타입임. (즉, 타입 지정 시, 해당 타입 데이터만 저장)
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 (참거짓) 자료형
bool 키워드로 선언.
true 또는 false 값만 가짐.
기본값은 false임.
조건문에서 주로 사용.
[예제]
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
}
주소 복사
랜덤 이동
최신댓글