티스토리 뷰
1) 기초 자료 형
데이터의 자료형은 자료의 속성을 분류하고, 값이 저장되는 형태를 정의합니다.
자료형의 종류에는
Boolean, Integer, Float, String, Time과 같은 기초 자료형,
Struct, Array, Slice, Map, Channel 등과 같이 구조체 또는 복합형,
실질적으로 값이 없는 Interface 와 함수를 저장하는 형이 있습니다.
이곳에서는 기초 자료 형에 대해서 설명하도록 하겠습니다.
2) Boolean
|
package main import ( |
- Boolean 자료형입니다.
Boolean은 참(true), 거짓(false) 의 값을 가지는 자료형으로,
길이는 1 Byte 정수타입입니다.
값을 할당하지 않으면, false을 기본값으로 가집니다.
관계연산자 ( ==, != )와 논리연산자 ( !, &&, || ) 이용하여
값을 비교, 계산 할 수 있습니다.
3) Integer
|
package main import ( "math" "fmt" "unsafe" ) func main() { var iValue8B = math.MaxInt8 var iValue16A = math.MinInt16 var iValue16B = math.MaxInt16 var iValue32A = math.MinInt32 var iValue32B = math.MaxInt32 var iValue64A = math.MinInt64 var iValue64B = math.MaxInt64 var uValue8 = math.MaxUint8 var uValue16 = math.MaxUint16 var uValue32 = math.MaxUint32 var uValue64 uint64 = math.MaxUint6 fmt.Println(iValue) // 0 fmt.Println(unsafe.Sizeof(iValue8A)) // 8 fmt.Println(iValue8A) // -128 fmt.Println(iValue8B) // 127 fmt.Println(iValue16A) // -32768 fmt.Println(iValue16B) // 32767 fmt.Println(iValue32A) // -2147483648 fmt.Println(iValue32B) // 2147483647 fmt.Println(iValue64A) // -9223372036854775808 fmt.Println(iValue64B) // 9223372036854775807 fmt.Println(uValue8) // 255 fmt.Println(uValue16) // 65536 fmt.Println(uValue32) // 4294967295 fmt.Println(uValue64) // 18446744073709551615 } |
- Integer 자료형 입니다.
정수 값을 가지며 소수점 이하가 없는 자료형입니다.
초기값을 할당하지 않으면 기본값 0 을 가집니다.
부호있는 정수형(Signed integer)와 부호없는 정수형(Unsigned integer)로
나누어 지며, 부호없는 정수형에는 int, int8, int16, int32, int64가 있으며,
부호 있는 정수형에는 uint, uint8, uint16, uint32, uint64가 있습니다.
자료형의 크기는
int8 (-128 ~ 127)
int16 (-32,768 ~ 32,767)
int32 (-2,147,483,648~2,147,483,647)
int64(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
uint8 (0 ~ 255)
uint16 (0 ~ 65,535)
uint32 (0 ~ 4,294,967,295)
uint64 (0 ~ 18,446,744,073,709,551,615) 입니다.
한가지 주의 할 점은 uint64 만 암시적 선언이 지원하지 않는 버그가 있는듯
합니다. 제가 Test 한 버전은 1.6 버젼 이었습니다.
4) Float, Complex
|
package main import ( "math" "fmt" "unsafe" ) func main() { var fValue float32 var fValue32 = math.MaxFloat32 var fValue64 = math.MaxFloat64 var cValue64 complex64 var cValue128 complex128 = 1 + 10i fmt.Println(fValue) // 0 fmt.Println(unsafe.Sizeof(fValue)) // 4 fmt.Println(fValue32) // 3.4028234663852886e+38 fmt.Println(fValue64) // 1.7976931348623157e+308 fmt.Println(cValue64) // 0+0i fmt.Println(unsafe.Sizeof(cValue64)) // 8 fmt.Println(unsafe.Sizeof(cValue128)) // 16 fmt.Println(cValue128) // 1 + 10i } |
- Float 자료형 입니다.
정수부와 소수 부를 함께 가지는 자료형입니다.
초기값을 할당하지 않으면 기본값 0 을 가집니다.
부동 소숫점은 일정한 크기를 가지며, 크기가 큰 부동 소숫점 수를
사용할 수록 정확한 값을 표현할 수 있습니다.
부동 소숫점의 크기는
float32 (±10-45 ~ ±3.4×1038)
float64 (±5×10-324 ~ ±1.7×10308) 입니다.
- Complex 자료형입니다.
실수부와 허수부를 함께 가지는 자료형입니다.
초기값을 할당하지 않으면 기본값은 0+0i 값을 가집니다.
복소수의 크기는
complex64 (8Byte Float)
complex128 (16Byte Float) 입니다.
'GO Language' 카테고리의 다른 글
[GO] JWT Library (0) | 2017.05.26 |
---|---|
[GO] 문자열 (Strings) (0) | 2016.08.26 |
[GO] 변수(Variables) (0) | 2016.08.22 |
[GO] 상수(Constants) (0) | 2016.08.22 |
[GO] 언어의 기본 구성 (0) | 2016.08.19 |