Program/Go Language

#03 Go 언어의 타입

상쾌한 아침 2016. 8. 20. 14:00

#03 Go 언어의 타입


- 이번 챕터는 Go 언어에 사용되는 타입과 변수 선언, 문자열에 대해서 알아보겠습니다.

자료형

설명 

범위 

uint8 

부호없는 8비트, 1바이트 정수 

0 ~ 255 

uint16

부호없는 16비트, 2바이트 정수 

0 ~ 65535 

uint32

부호없는 32비트, 4바이트 정수 

0 ~ 4294967295

uint64 

부호없는 64비트, 8바이트 정수 

0 ~  18446744073709551615

int8

부호있는 8비트, 1바이트 정수 

-128 ~ 127 

int16 

부호있는 16비트, 2바이트 정수 

-32768 ~ 32767 

int32

부호있는 32비트, 4바이트 정수 

-2147483648 ~  2147483647

int64

부호있는 64비트, 8바이트 정수

 -9223372036854775808 to 9223372036854775807

float32

IEEE-754 32비트 단정밀도 부동소수점, 7자리 정밀도 보장

 

float64 

IEEE-754 64비트 배정밀도 부동소수점, 15자리 정밀도 보장 

 

complex64

float32 크기의 실수부와 허수부로 된 복소수 

 

complex128

float64 크기의 실수부와 허수부로 된 복소수 

 

byte

uint8과 크기가 동일, 바이트 단위로 저장할 때 사용 

 

int32와 크기가 동일, 유니코드 문자 코드를 저장할 때 사용 

 

uint

32비트 시스템에서는 uint32, 64비트 시스템에서는 uint64 

 

int 

32비트 시스템에서는 int32, 64비트 시스템에서는 int64 

 

uintprt

uint와 크기가 동일하며 포인터를 저장할 때 사용 

 


[ 변수 선언 ] 


키워드 변수명 자료형

var i int

var s string


선언과 동시에 초기화를 시켜주면 자료형을 생략 가능합니다.

var i = 10

var s = "string"


키워드 var와 자료형을 생략도 가능합니다.

i := 10

s := "string"


위의 내용을 응용해서 여러개 선언하는 법

var x, y int = 30, 50 // x = 30, y = 50

var x, y = 30, 50 // x = 30, y = 50

x, y := 30, 50



[ 변수 크기 ]


c언어의 sizeof 연산자처럼 변수의 크기 구하기 입니다.

크기는 바이트단위 입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main
 
import "fmt"
import "unsafe" // Sizeof 함수를 사용하기 unsafe 패키지 사용
 
func main() {
    var num1 int8 = 1
    var num2 int16 = 1
    var num3 int32 = 1
    var num4 int64 = 1
 
    fmt.PrintIn(unsafe.Sizeof(num1)) // 1
    fmt.PrintIn(unsafe.Sizeof(num2)) // 2
    fmt.PrintIn(unsafe.Sizeof(num3)) // 4
    fmt.PrintIn(unsaef.Sizeof(num4)) // 8
}
cs


[ 문자열 ]


문자열 길이 구하기

len함수를 사용


1
2
3
4
5
6
 
var s1 string = "한글"
var s2 string = "Hello"
 
len(s1) // 6 : UTF-8 인코딩의 바이트 길이이므로 6
len(s2) // 5 : 알파벳 5글자이므로 5
cs


[ 문자열 수정하기 ]


문자열의 문자를 직접적으로 수정할수 없습니다.



[ 상수 선언 ]


const 상수명 자료형 = 초기값


1
2
const i int = 10
const s string = "STRING"
cs




[ 열거형 ]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
const Sunday = 0
const Monday = 1
const Tueday = 2
const Wedday = 3
const Thuday = 4
const Friday = 5
const Satday = 6
 
 
// const () 키워드를 사용시 const를 반복하지 않아도 됩니다.
 
const(
    Sunday = 0,
    Monday = 1,
    Tueday = 2,
    Wedday = 3,
    Thuday = 4,
    Friday = 5,
    Satday = 6
)
 
// 또는 iota를 사용하여 대입연산자를 생략 가능합니다.
 
const(
    Sunday = iota,
    Monday,
    Theday,
    Wedday,
    Thuday,
    Friday,
    Satday
)
cs