"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go 구조체에 포함된 필드에 어떻게 액세스합니까?

Go 구조체에 포함된 필드에 어떻게 액세스합니까?

2024년 11월 14일에 게시됨
검색:446

How Do I Access Embedded Fields in Go Structs?

구조체 유형 내장 필드 액세스

Go에서 구조체 유형은 구조체 내에 하나 이상의 유형을 삽입할 수 있는 내장 필드를 포함할 수 있습니다. 이 강력한 기능을 사용하면 코드 재사용과 효율적인 메모리 관리가 가능합니다. 그러나 포인터에 대해 배우면서 이러한 필드에 액세스하는 방법을 이해하는 것이 어려울 수 있습니다.

다음 구조체 정의를 고려하세요.

type Engine struct {
    power int
}

type Tires struct {
    number int
}

type Cars struct {
    *Engine // Embedded field with pointer
    Tires   // Embedded field without pointer
}

관찰한 바와 같이 Cars 구조체 내에는 내장형 포인터 *Engine이 정의되어 있습니다. 이를 통해 Cars 구조체를 통해 Engine 유형의 메서드와 필드에 액세스할 수 있습니다.

Engine 내장 필드의 power 필드에 액세스하려면 먼저 Engine 및 Cars 구조체를 모두 초기화해야 합니다. 주요 기능에서:

func main() {
    car := new(Cars) // Initialize Cars struct
    car.Engine = new(Engine) // Initialize Engine struct explicitly
    car.power = 342 // Set power field
    car.number = 4 // Set number field
}

두 구조체를 모두 명시적으로 초기화하여 포함된 *Engine 포인터와 실제 Engine 개체 사이에 연결을 설정합니다. 이제 Cars 구조체를 통해 전력 필드에 액세스할 수 있습니다.

fmt.Println(car.power) // Prints 342

마찬가지로 포인터가 아닌 임베디드 필드의 경우도 마찬가지입니다. , 해당 숫자 필드에 직접 액세스할 수 있습니다.

fmt.Println(car.number) // Prints 4

이 예에서는 구조체 내에 포함된 필드를 올바르게 초기화하고 액세스하는 방법을 보여줍니다. , 코드 재사용 및 효율적인 메모리 관리를 최대한 활용할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3