[go] 구조체(struct)의 중첩 구조 구현

구조체(struct)는 데이터를 그룹화하고 새로운 데이터 타입을 만드는 데 사용하는 Go 언어의 기능입니다. 이론적으로 구조체 안에 다른 구조체를 중첩시킬 수 있습니다. 중첩 구조체를 사용하면 복잡한 데이터 구조를 표현하고 조작할 때 편리합니다.

다음은 예시 코드로, 중첩 구조체를 구현하는 방법을 보여줍니다.

package main

import "fmt"

type Address struct {
    City  string
    State string
}

type Person struct {
    Name    string
    Age     int
    Address Address
}

func main() {
    p := Person{
        Name: "John Doe",
        Age:  25,
        Address: Address{
            City:  "Seoul",
            State: "Gangnam",
        },
    }

    fmt.Println("Name:", p.Name)
    fmt.Println("Age:", p.Age)
    fmt.Println("City:", p.Address.City)
    fmt.Println("State:", p.Address.State)
}

위 코드에서는 AddressPerson이라는 두 개의 구조체를 정의합니다. Person 구조체는 Name, Age, Address 필드로 구성되어 있습니다. Address 구조체는 CityState 필드로 구성되어 있습니다.

main 함수에서는 p 변수를 생성하고, Person 구조체의 값을 초기화합니다. Address 구조체의 값을 초기화하기 위해 중괄호를 한 번 더 사용합니다.

마지막으로, fmt.Println 함수를 사용하여 Person 구조체의 필드 값을 출력합니다. 중첩된 구조체인 Address의 필드도 마찬가지로 접근하여 출력할 수 있습니다.

위 예시 코드를 실행해보면 다음과 같은 결과를 볼 수 있습니다:

Name: John Doe
Age: 25
City: Seoul
State: Gangnam

이처럼 구조체의 중첩 구조를 활용하면 복잡한 데이터 구조를 표현하고 다루는 데 편리합니다. 중첩 구조체를 사용하여 자신만의 데이터 구조를 정의해보세요.

참고 자료