[go] 구조체와 템플릿
구조체
구조체는 여러 데이터 타입의 변수를 묶어 하나의 새로운 데이터 타입을 정의하는데 사용됩니다. 보통 구조(struct) 또는 체(struct)로 줄여쓰기도 합니다. 구조체는 일반적으로 멤버 변수와 멤버 함수를 가질 수 있습니다.
type Person struct {
Name string
Age int
}
위의 예제에서 보듯이, Person
구조체는 Name
과 Age
두 가지의 멤버 변수를 가지고 있습니다.
템플릿
템플릿은 제네릭 프로그래밍에서 사용되는 개념으로, 여러 데이터 타입에 대해 동일한 알고리즘을 적용할 수 있도록 합니다. Go 언어에서는 템플릿을 구현하기 위해 인터페이스와 메서드를 활용합니다.
type Item struct {
Value interface{}
}
func PrintItemValue(item Item) {
fmt.Println(item.Value)
}
위의 예제에서, Item
구조체는 Value
필드를 가지는데, 이 필드의 데이터 타입은 interface{}
로 정의되어 여러 다른 종류의 데이터를 담을 수 있습니다.
템플릿을 사용하면, 재사용성이 높아지고 코드의 유연성이 개선됩니다. 예를 들어, PrintItemValue
함수를 통해 Item
구조체의 값이어떤 데이터 타입이든 출력할 수 있습니다.
결론
구조체와 템플릿은 Go 언어에서 강력한 프로그래밍 도구로서, 객체 지향 및 제네릭 프로그래밍에 유용하게 활용됩니다.
내용 참조:
- https://gobyexample.com/structs
- https://gobyexample.com/interfaces
- https://tour.golang.org/methods/10