Golang의 중첩 구조

Golang 의 구조체 또는 구조는 사용자가 정의한 유형으로, 다양한 유형의 요소를 하나의 단위로 만들 수 있습니다. 속성이나 필드 집합을 가진 모든 실제 세계 엔터티는 구조체로 표현될 수 있습니다.

Golang의 중첩 구조

Golang에서 중첩 구조를 사용하는 방법

Go 언어는 중첩된 구조를 허용합니다. 다른 구조체의 필드인 구조체를 중첩 구조체라고 합니다. 즉, 다른 구조 안에 있는 구조를 중첩 구조라고 합니다. 통사론:

type struct_name_1 struct{
  // Các trường
} 
type struct_name_2 struct{
  variable_name  struct_name_1

}

Golang의 중첩 구조를 이해하기 위해 다음 예를 살펴보겠습니다.

예시 1:

// Chương trình Go minh hoạc
// cấu trúc lồng nhau
package main

import "fmt"

// Tạo cấu trúc
type Author struct {
	name string
	branch string
	year int
}

// Tạo cấu trúc lòng nhau
type HR struct {

	// cấu trúc là một trường
	details Author
}

func main() {

	// Khởi tạo các trường
	// của cấu trúc
	result := HR{
	
		details: Author{"Sona", "ECE", 2013},
	}

	// Hiện giá trị
	fmt.Println("\nDetails of Author")
	fmt.Println(result)
}

결과:

Details of Author
{{Sona ECE 2013}}

예 2:

// Chương trình Golang minh họa
// cấu trúc lồng nhau
package main

import "fmt"

// Tạo cấu trúc
type Student struct {
	name string
	branch string
	year int
}

// Tạo cấu trúc lồng nhau
type Teacher struct {
	name string
	subject string
	exp	 int
	details Student
}

func main() {

	// Khởi tạo các trường
	// của cấu trúc
	result := Teacher{
		name: "Suman",
		subject: "Java",
		exp:	 5,
		details: Student{"Bongo", "CSE", 2},
	}

	// Hiện giá trị
	fmt.Println("Details of the Teacher")
	fmt.Println("Teacher's name: ", result.name)
	fmt.Println("Subject: ", result.subject)
	fmt.Println("Experience: ", result.exp)

	fmt.Println("\nDetails of Student")
	fmt.Println("Student's name: ", result.details.name)
	fmt.Println("Student's branch name: ", result.details.branch)
	fmt.Println("Year: ", result.details.year)
}

결과:

Details of the Teacher
Teacher's name:  Suman
Subject:  Java
Experience:  5

Details of Student
Student's name:  Bongo
Student's branch name:  CSE
Year:  2

예시 3:

Go에서는 구조체 자체가 구조체인 필드를 가질 수 있는데, 이를 중첩 구조체라고 합니다. 중첩된 구조를 갖는 구조의 예는 다음과 같습니다.

package main

import (
	"fmt"
)

type Address struct {
	Street	 string
	City	 string
	State	 string
	PostalCode string
}

type Person struct {
	FirstName string
	LastName string
	Age	 int
	Address Address
}

func main() {
	p := Person{
		FirstName: "John",
		LastName: "Doe",
		Age:	 30,
		Address: Address{
			Street:	 "123 Main St",
			City:	 "Anytown",
			State:	 "CA",
			PostalCode: "12345",
		},
	}

	fmt.Println(p.FirstName, p.LastName)
	fmt.Println("Age:", p.Age)
	fmt.Println("Address:")
	fmt.Println("Street:", p.Address.Street)
	fmt.Println("City:", p.Address.City)
	fmt.Println("State:", p.Address.State)
	fmt.Println("Postal Code:", p.Address.PostalCode)
}

결과:

John Doe
Age: 30
Address:
Street: 123 Main St
City: Anytown
State: CA
Postal Code: 12345

여기서는 Person과 Address라는 두 가지 구조체 유형을 정의합니다. Person에는 Address라는 중첩된 구조체 필드가 ​​있습니다. 메인 함수에서 Address 필드가 있는 새로운 Person 인스턴스를 생성합니다. 그런 다음 점 표기법을 사용하여 Person 및 Address 구조체의 다양한 필드 값을 인쇄하여 중첩된 필드에 액세스합니다.

댓글 남기기

파주에서 이불 버리는 방법: 품목별 수수료와 배출 절차

파주에서 이불 버리는 방법: 품목별 수수료와 배출 절차

파주에서 이불을 버릴 때는 대형폐기물로 신고해야 합니다. 홑이불 1,000원, 차렵·솜이불 2,000원 기준과 온라인 신청, 스티커 부착, 배출 장소 확인법을 정리했습니다.

부산에서 냉장고 버리는 방법: 무료 방문수거·새 제품 회수·유상 처리 비교

부산에서 냉장고 버리는 방법: 무료 방문수거·새 제품 회수·유상 처리 비교

부산에서 냉장고를 버릴 때 쓸 수 있는 폐가전 무상방문수거, 새 냉장고 구매 시 기존 제품 회수, 구·군 대형폐기물 처리의 차이와 신청·준비 방법을 정리합니다.

시흥에서 매트리스 버리는 방법: 비용·배출시간·재사용 선택 가이드

시흥에서 매트리스 버리는 방법: 비용·배출시간·재사용 선택 가이드

시흥에서 매트리스를 버릴 때 재사용, 스마트클린 시흥 신고, 운반업체 이용을 비교합니다. 규격별 수수료 확인, 배출번호 부착, 지정 장소와 시간까지 정리했습니다.

청주에서 소파 버리는 방법: 대형폐기물 신고부터 배출·수거까지

청주에서 소파 버리는 방법: 대형폐기물 신고부터 배출·수거까지

청주에서 소파를 버릴 때 필요한 대형폐기물 신고, 수수료 확인, 납부필증 부착, 배출장소와 수거 일정까지 2026년 기준으로 정리했습니다.

성남에서 컴퓨터 버리는 방법: 본체·모니터 무료 배출 경로 정리

성남에서 컴퓨터 버리는 방법: 본체·모니터 무료 배출 경로 정리

성남에서 컴퓨터 버리는 법을 안내합니다. 데스크톱 세트 무상 방문수거, 대형폐기물 신고, 노트북 조건과 개인정보 삭제 방법을 확인하세요.

포항에서 프라이팬 버리는 방법: 일반 프라이팬과 전기 프라이팬 구분하기

포항에서 프라이팬 버리는 방법: 일반 프라이팬과 전기 프라이팬 구분하기

포항에서 프라이팬을 버릴 때 일반 프라이팬과 전기 프라이팬을 구분하는 방법, 손잡이 분리, 고철류 배출, 대형폐기물·무상수거 조건을 확인하세요.

포항에서 자전거 버리는 방법: 신청 순서·수수료와 2026년 9월 점검 일정

포항에서 자전거 버리는 방법: 신청 순서·수수료와 2026년 9월 점검 일정

포항에서 자전거를 버릴 때 필요한 대형폐기물 온라인 신청 순서, 성인용·어린이용 수수료, 납부필증 부착과 공동주택 배출장소를 안내합니다. 2026년 9월 30일 신청 중단 시간도 확인하세요.

기초연금 신청 후 언제부터 지급되나? 신청월·첫 입금일·소급 지급까지 정리

기초연금 신청 후 언제부터 지급되나? 신청월·첫 입금일·소급 지급까지 정리

기초연금은 수급자로 결정되면 원칙적으로 신청한 날이 속한 달부터 지급됩니다. 매월 25일 지급, 심사 지연 시 신청월부터의 금액을 함께 받는 경우, 만 65세 사전 신청과 늦게 신청했을 때의 차이를 2026년 기준으로 설명합니다.

안산에서 프라이팬 버리는 방법: 고철 분리와 배출 요일 한눈에

안산에서 프라이팬 버리는 방법: 고철 분리와 배출 요일 한눈에

안산에서 프라이팬을 버릴 때 본체·손잡이·유리 뚜껑을 어떻게 나눌까요? 단독주택과 아파트의 배출 방법과 요일, 확인할 점을 정리했습니다.

대구에서 TV 버리는 방법: 무료 방문수거와 대형폐기물 신고 정리

대구에서 TV 버리는 방법: 무료 방문수거와 대형폐기물 신고 정리

대구에서 TV를 버리는 방법을 정리했습니다. 폐가전 무상방문수거 신청, 구·군별 대형폐기물 신고, TV 받침대 처리와 배출 전 체크리스트를 확인하세요.