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 
}

 

 현재까지 정리한 정도는 이 정도 이다. 차후 다른 자료 구조에 대해서 다루어야 한다면 추가할 수 있도록 하겠습니다.

반응형