Computer language and framework/GO
[Go] Go 자료 구조
WhiteGoblin
2020. 4. 15. 13:53
반응형
- GO 자료 구조
- 배열 , 슬라이스 , 맵 , Go 구조체 ( struct) , 매서드 ( method ) 등
- 배열
- 미리 크기가 정해진 동일한 자료형의 모음
선언 및 초기화
var myArray [3]int
// 선언
myArray = [3]int{ 1 , 2 , 3 }
// 초기화
선언과 초기화를 한번에
myArray := [3]int{1 , 2 , 3 }
※ " := " 으로 선언시 변수에 대한 자료형을 자동으로 선언해준다.
- 슬라이스
- 배열의 크기를 미리 명시해야 하는 점 -> 실제로는 모르는 경우가 많다.
- 이러한 것들을 극복하기 위해 슬라이스 제공한다.
var mySlice = []int{}
// 선언
mySlice = []int{ 1 , 2 , 3 }
// 초기화
배열과 거의 동일하게 선언하고 초기화 해준다.
- 맵
- 키- 값 쌍의 집합이다.
var myMap map[int]string
// 선언
myMap = make(map[int]string)
// 초기화
myMap[0] ="string"
mysMap = make(map[string]string)
// string 키 값을 가지고 string value 를 가진 map
mysMap = map[string]string{
"name":"whitegoblin",
"age":"secret",
}
- 구조체
- 여러 자료형의 집합
package main
import (
"fmt"
)
type myStruct struct{
intField int
// 정수형
stringField string
// 문자열
sliceField []int
// 슬라이스
}
// 선언
func main(){
var myStructInst myStruct
myStructInst.intField = 1
myStructInst.stringField ="hello"
myStructInst.sliceField = []int{ 1, 2 ,3 }
}
- 매서드
- 타입 ( type ) 에 연결되는 함수이다
func (p person) GetName() string{
return "whitegoblin"
}
- 인터페이스
- 간단하게 정의하면 매서드의 집합
type MyInterface interface{
GetName() string
GetAge() int
}
- 타입 임베딩
- 구조체 안에서 선언 함을 통해 person ( 구조체) 의 매서드를 이용할수 있다.
type student struct {
person
id int
}
현재까지 정리한 정도는 이 정도 이다. 차후 다른 자료 구조에 대해서 다루어야 한다면 추가할 수 있도록 하겠습니다.
반응형