Go에서 구조체 유형은 구조체 내에 하나 이상의 유형을 삽입할 수 있는 내장 필드를 포함할 수 있습니다. 이 강력한 기능을 사용하면 코드 재사용과 효율적인 메모리 관리가 가능합니다. 그러나 포인터에 대해 배우면서 이러한 필드에 액세스하는 방법을 이해하는 것은 어려울 수 있습니다.
다음 구조체 정의를 고려하세요.
<code class="go">type Engine struct { power int } type Tires struct { number int } type Cars struct { *Engine // Embedded field with pointer Tires // Embedded field without pointer }</code>
관찰한 것처럼 Cars 구조체 내에는 유형 포인터 *엔진이 정의되었습니다. 이를 통해 Cars 구조체를 통해 Engine 유형의 메서드와 필드에 액세스할 수 있습니다.
Engine 내장 필드의 power 필드에 액세스하려면 먼저 Engine 및 Cars 구조체를 모두 초기화해야 합니다. 기본 함수에서:
<code class="go">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 }</code>
두 구조체를 모두 명시적으로 초기화하여 내장된 *Engine 포인터와 실제 Engine 개체 사이에 연결을 설정합니다. 이제 Cars 구조체를 통해 power 필드에 액세스할 수 있습니다.
<code class="go">fmt.Println(car.power) // Prints 342</code>
마찬가지로 포인터가 아닌 임베디드 필드 Tires의 경우 해당 숫자 필드에 직접 액세스할 수 있습니다.
<code class="go">fmt.Println(car.number) // Prints 4</code>
이 예에서는 구조체 내의 포함된 필드를 적절하게 초기화하고 액세스하는 방법을 보여 주며, 이를 통해 코드 재사용 및 효율적인 메모리 관리를 최대한 활용할 수 있습니다.
위 내용은 Go 구조체에 포함된 필드에 어떻게 액세스합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!