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