Golang 구조체 포함 사용법과 코드 예제

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 언어의 강력한 기능 중 하나로, 효과적으로 활용함으로써 깔끔하고 효율적인 코드를 작성할 수 있습니다.

タイトルとURLをコピーしました