-
자료형 및 키워드Language/Golang 2023. 2. 7. 21:20
Go 자료형과 키워드
자료형
자료형 저장범위 설명 uint8 0 ~ 255 부호 없는 8비트 정수형 uint16 0 ~ 65,535 부호 없는 16비트 정수형 unit32 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 문자열을 저장하기 위한 자료형 키워드
키워드 목록
break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
키워드별 사용처
C/C++ 및 Java 와 크게 다른 키워드만을 안내합니다.
func
함수 명시에 대한 기본 키워드.
interface
어떠한 값이든 될 수 있는 항목에 대한 지정 키워드
select
채널(chan) 에 대한 동기화, 통신 등에 사용되는 키워드
defer
함수의 동작이 종료된 후 실행될 명령을 지정하는 키워드
defer 문이 여러개라면 나중에 지정된 defer 부터 코드라인상 역순으로 실행
package main import ( "fmt" ) func main() { defer fmt.Println("test") // unlocking happens before surrounding function for i := 0; i <= 3; i++ { defer fmt.Println(i) } defer fmt.Println("__",f()) fmt.Println("End") return } func f() (result int) { defer func() { // result is accessed after it was set to 6 by the return statement result *= 7 }() return 6 }
결과값 End __ 42 3 2 1 0 test
go
함수 호출을 비동기적으로 실행(goroutine)할 시 사용되는 키워드
별도의 호출할 함수에 대한 지정포멧은 존재하지 않음
package main import "fmt" func TestA(a int) { fmt.Println(a) } func TestB(b string) { fmt.Println(b) } func main { go TestA(10) go TestB("ABC") }
struct
필드들의 집합체
C/C++ 의 구조체나 Java 의 Class 와 달리
구조체 정의에 대한 함수 생성은 구조체 밖에 정의하며 구조체는 필드만을 소유
type Test struct { A int B string } func (self Test) PrintA() bool { fmt.Println(self.A) }
chan
데이터를 송수신하며 통신할 수 있는 기능
package
패키지에 속한 상수, 유형, 변수 및 함수를 함께 선언하고 동일한 패키지의 모든 파일에서 액세스 할 수있는 하나 이상의 소스 파일로 구성
fallthrough
Go 에서 switch~case 동작시 case 문 끝에 break 가 없어도 자동적으로 switch 문을 빠져나오게 되며, 해당 기능을 차단하고자 할때 사용
range
map 이나 배열등을 반복할때 사용될 데이터를 지정하는 키워드
type
String, Int 와 같은 유형을 사용자 임의의 고유 유형을 지정하거나 interface 변수를 타입을 찾아 처리하고자 할때 사용
type ( B1 string B2 B1 B3 []B1 B4 B3 ) func ConvFloatToInt(x interface{}) int { if x == nil { return -1 } switch x.(type) { case float64: return int(x.(float64)) } return -1 }
import
패키지 포함 키워드. Alias를 통해 다른 이름으로 사용 가능합니다.
import "fmt" // fmt.Println() import f "fmt" // f.Println() import . "fmt" // Println()
var
변수에 대한 선언 키워드
'Language > Golang' 카테고리의 다른 글
Golang에서 Json 사용예시 (0) 2023.02.07 CGO ( Golang With C++ ) 케이스별 설명 및 예시 (0) 2023.02.07 문법 및 사용법 예시 (0) 2023.02.07 Golang 설치 및 IDE (0) 2023.02.07 What is Golang? (0) 2023.02.06