[go] 구조체와 템플릿

구조체

구조체는 여러 데이터 타입의 변수를 묶어 하나의 새로운 데이터 타입을 정의하는데 사용됩니다. 보통 구조(struct) 또는 체(struct)로 줄여쓰기도 합니다. 구조체는 일반적으로 멤버 변수멤버 함수를 가질 수 있습니다.

type Person struct {
    Name string
    Age  int
}

위의 예제에서 보듯이, Person 구조체는 NameAge 두 가지의 멤버 변수를 가지고 있습니다.

템플릿

템플릿제네릭 프로그래밍에서 사용되는 개념으로, 여러 데이터 타입에 대해 동일한 알고리즘을 적용할 수 있도록 합니다. Go 언어에서는 템플릿을 구현하기 위해 인터페이스메서드를 활용합니다.

type Item struct {
    Value interface{}
}

func PrintItemValue(item Item) {
    fmt.Println(item.Value)
}

위의 예제에서, Item 구조체는 Value 필드를 가지는데, 이 필드의 데이터 타입은 interface{}로 정의되어 여러 다른 종류의 데이터를 담을 수 있습니다.

템플릿을 사용하면, 재사용성이 높아지고 코드의 유연성이 개선됩니다. 예를 들어, PrintItemValue 함수를 통해 Item 구조체의 값이어떤 데이터 타입이든 출력할 수 있습니다.

결론

구조체와 템플릿은 Go 언어에서 강력한 프로그래밍 도구로서, 객체 지향제네릭 프로그래밍에 유용하게 활용됩니다.

내용 참조: