Golang 구조체 포함이란?
Golang에서는 구조체를 다른 구조체에 포함시킬 수 있습니다. 이를 통해 외부 구조체에서 포함된 구조체의 필드와 메서드에 액세스할 수 있으며 코드의 재사용성과 확장성을 향상시킵니다.
기본 포함
먼저 기본 포함 구문을 살펴보겠습니다.
type Parent struct {
ParentField int
}
type Child struct {
Parent // Parent 구조체를 포함
ChildField int
}
위의 예에서 Child
구조체는 Parent
구조체를 포함하고 있습니다. 이로써 Child
구조체는 Parent
구조체의 필드에 액세스할 수 있게 됩니다.
코드 예제1: 포함된 구조체 초기화
c := Child{
Parent: Parent{
ParentField: 10,
},
ChildField: 20,
}
fmt.Println(c.ParentField) // 10
fmt.Println(c.ChildField) // 20
코드 예제2: 메서드 오버라이드
func (p *Parent) Print() {
fmt.Println("Parent 메서드")
}
func (c *Child) Print() {
fmt.Println("Child 메서드")
}
c := Child{}
c.Parent.Print() // "Child 메서드"
코드 예제3: 필드 이름 충돌 해결
type Parent struct {
Field int
}
type Child struct {
Parent
Field int // 충돌하는 필드
}
c := Child{}
c.Parent.Field = 10 // Parent의 Field에 액세스
c.Child.Field = 20 // Child의 Field에 액세스
fmt.Println(c.Field) // Child의 Field가 우선됩니다.
코드 예제4: 익명 구조체 포함
type Parent struct {
Field1 int
}
type Child struct {
Parent struct {
Field2 int
}
Field3 int
}
c := Child{}
c.Parent.Field1 = 10
c.Parent.Field2 = 20
c.Field3 = 30
fmt.Println(c.Field1) // 10
fmt.Println(c.Field2) // 20
fmt.Println(c.Field3) // 30
이러한 코드 예제를 사용하여 Golang에서의 구조체 포함의 기본 개념을 이해하고 코드의 재사용성과 유지 관리성을 향상시키는 방법을 탐색해보세요. 구조체 포함은 Go 언어의 강력한 기능 중 하나로, 효과적으로 활용함으로써 깔끔하고 효율적인 코드를 작성할 수 있습니다.