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 구조체의 다양한 필드 값을 인쇄하여 중첩된 필드에 액세스합니다.

Sign up and earn $1000 a day ⋙

Leave a Comment

Golang에서 상수를 사용하는 방법

Golang에서 상수를 사용하는 방법

Golang에서 상수 또는 Const는 무엇입니까? Go에서 상수를 사용하는 데 필요한 사항은 다음과 같습니다.

Golang의 Volatile 함수

Golang의 Volatile 함수

Go의 가변 함수를 사용하면 함수에 가변 개수의 인수를 전달할 수 있습니다. Golang의 volatile 함수에 대해 알아야 할 모든 것을 소개합니다.

Golang의 명명된 반환 매개변수

Golang의 명명된 반환 매개변수

Golang에서는 명명된 반환 매개변수를 종종 명명된 매개변수라고 합니다. Golang에서는 함수 시그니처나 정의에서 함수의 반환 매개변수나 결과에 이름을 지정할 수 있습니다.

Go의 키워드

Go의 키워드

키워드 - 키워드는 언어에서 어떤 내부 프로세스에 사용되거나 미리 정의된 동작을 나타내는 단어입니다. Golang의 키워드에 대해 알아야 할 사항은 다음과 같습니다.

Golang의 데이터 유형

Golang의 데이터 유형

데이터 유형은 유효한 Go 변수가 포함할 수 있는 데이터 유형을 지정합니다. Go 언어에서 유형은 다음과 같이 네 가지 범주로 구분됩니다.

Golang의 함수 인수

Golang의 함수 인수

Go에서는 인수를 전달하는 두 가지 주요 방법을 지원합니다. 값으로 전달, 참조로 전달입니다. Go는 기본적으로 값으로 전달을 사용합니다.

Golang에서 여러 값을 반환하는 함수

Golang에서 여러 값을 반환하는 함수

Go 언어에서는 return 문을 사용하여 함수에서 여러 값을 반환할 수 있습니다. 즉, 함수에서 반환 문은 여러 개의 값을 반환할 수 있습니다.

Go에서의 Switch 문

Go에서의 Switch 문

대부분의 다른 프로그래밍 언어와 마찬가지로 Golang에도 switch 문이 있습니다. Golang에서 switch 문을 사용하는 방법은 다음과 같습니다.

Golang에서 선택문을 사용할 때 알아야 할 사례

Golang에서 선택문을 사용할 때 알아야 할 사례

이 글에서는 기본 케이스를 사용하여 교착 상태를 피하는 방법을 알아보겠습니다. 하지만 먼저, Golang select 명령을 사용할 때 교착 상태가 발생하는 경우를 알아보겠습니다.

Golang의 익명 구조체와 필드

Golang의 익명 구조체와 필드

Golang의 익명 구조체는 한 번만 사용되는 이름이 없는 임시 구조체인 반면, 익명 필드는 이름이 없는 필드를 내장하는 것을 허용합니다.

Golang에서 Rune을 사용하는 방법

Golang에서 Rune을 사용하는 방법

골란어의 룬은 무엇인가요? Golang에서 Rune을 어떻게 사용하나요? 이 기사에서 답을 알려드리겠습니다.

Golang에서 연산자를 사용하는 방법

Golang에서 연산자를 사용하는 방법

연산자를 사용하면 피연산자에 대해 다양한 유형의 연산을 수행할 수 있습니다. Go 언어에서는 연산자를 기능에 따라 분류할 수 있습니다.

Golang의 Void 식별자

Golang의 Void 식별자

Golang에서는 _(언더스코어)를 공백 식별자라고 합니다. 식별자는 식별 목적으로 사용되는 프로그램 구성 요소의 사용자 정의 이름입니다.

Golang으로 기본 프로그램을 만드는 방법

Golang으로 기본 프로그램을 만드는 방법

안녕하세요, 세상아! 모든 프로그래밍 언어의 첫 번째 기본 프로그램입니다. 아래 단계에 따라 Golang으로 첫 번째 프로그램을 작성할 수 있습니다.

Windows에 Go를 설치하는 방법

Windows에 Go를 설치하는 방법

Golang은 윈도우에 쉽게 설치할 수 있습니다. 다음은 Windows에 Golang을 설치하는 방법에 대한 자세한 단계별 가이드입니다.

하드 드라이브에 대한 액세스를 다시 얻는 방법, 하드 드라이브를 열 수 없는 오류 수정

하드 드라이브에 대한 액세스를 다시 얻는 방법, 하드 드라이브를 열 수 없는 오류 수정

이 글에서는 하드 드라이브에 문제가 생겼을 때 다시 접근할 수 있는 방법을 안내해 드리겠습니다. 함께 따라 해 보세요!

AirPods에서 대화 인식 및 실시간 듣기 기능을 사용하는 방법

AirPods에서 대화 인식 및 실시간 듣기 기능을 사용하는 방법

AirPods는 언뜻 보기에 다른 무선 이어폰과 별반 다르지 않아 보입니다. 하지만 몇 가지 잘 알려지지 않은 기능이 발견되면서 모든 것이 달라졌습니다.

IOS 26에 대한 모든 것

IOS 26에 대한 모든 것

Apple은 iOS 26을 출시했습니다. 완전히 새로운 불투명 유리 디자인, 더욱 스마트해진 경험, 익숙한 앱의 개선 사항이 포함된 주요 업데이트입니다.

2025년 학생을 위한 최고의 노트북

2025년 학생을 위한 최고의 노트북

학생들은 학업을 위해 특정 유형의 노트북이 필요합니다. 선택한 전공 분야에서 뛰어난 성능을 발휘할 만큼 강력해야 할 뿐만 아니라, 하루 종일 휴대할 수 있을 만큼 작고 가벼워야 합니다.

Windows 10에 프린터를 추가하는 방법

Windows 10에 프린터를 추가하는 방법

Windows 10에 프린터를 추가하는 것은 간단하지만, 유선 장치의 경우와 무선 장치의 경우 프로세스가 다릅니다.

컴퓨터의 RAM을 확인하고 가장 높은 정확도로 RAM 오류를 확인하는 방법

컴퓨터의 RAM을 확인하고 가장 높은 정확도로 RAM 오류를 확인하는 방법

아시다시피 RAM은 컴퓨터에서 매우 중요한 하드웨어 부품으로, 데이터 처리를 위한 메모리 역할을 하며 노트북이나 PC의 속도를 결정하는 요소입니다. 아래 글에서는 WebTech360에서 Windows에서 소프트웨어를 사용하여 RAM 오류를 확인하는 몇 가지 방법을 소개합니다.

일반 TV와 스마트 TV의 차이점

일반 TV와 스마트 TV의 차이점

스마트 TV는 정말로 세상을 휩쓸었습니다. 이렇게 많은 뛰어난 기능과 ​​인터넷 연결 덕분에 기술은 우리가 TV를 시청하는 방식을 바꾸어 놓았습니다.

왜 냉동고에는 조명이 없는데 냉장고에는 조명이 있나요?

왜 냉동고에는 조명이 없는데 냉장고에는 조명이 있나요?

냉장고는 가정에서 흔히 볼 수 있는 가전제품이다. 냉장고는 보통 2개의 칸으로 구성되어 있는데, 냉장실은 넓고 사용자가 열 때마다 자동으로 켜지는 조명이 있는 반면, 냉동실은 좁고 조명이 없습니다.

Wi-Fi 속도를 저하시키는 네트워크 혼잡을 해결하는 2가지 방법

Wi-Fi 속도를 저하시키는 네트워크 혼잡을 해결하는 2가지 방법

Wi-Fi 네트워크는 라우터, 대역폭, 간섭 외에도 여러 요인의 영향을 받지만 네트워크를 강화하는 몇 가지 스마트한 방법이 있습니다.

Tenorshare Reiboot를 사용하여 데이터 손실 없이 iOS 17에서 iOS 16으로 다운그레이드하는 방법

Tenorshare Reiboot를 사용하여 데이터 손실 없이 iOS 17에서 iOS 16으로 다운그레이드하는 방법

휴대폰에서 안정적인 iOS 16으로 돌아가려면 iOS 17을 제거하고 iOS 17에서 16으로 다운그레이드하는 기본 가이드는 다음과 같습니다.

매일 요구르트를 먹으면 몸에 어떤 일이 일어날까요?

매일 요구르트를 먹으면 몸에 어떤 일이 일어날까요?

요거트는 정말 좋은 음식이에요. 매일 요구르트를 먹는 것이 좋은가요? 매일 요구르트를 먹으면, 몸에 어떤 변화가 있을까요? 함께 알아보죠!

어떤 종류의 쌀이 건강에 가장 좋은가요?

어떤 종류의 쌀이 건강에 가장 좋은가요?

이 기사에서는 가장 영양가 있는 쌀 종류와 어떤 쌀을 선택하든 건강상의 이점을 극대화하는 방법에 대해 설명합니다.

아침에 제 시간에 일어나는 방법

아침에 제 시간에 일어나는 방법

수면 일정과 취침 루틴을 정하고, 알람 시계를 바꾸고, 식단을 조절하는 것은 더 나은 수면을 취하고 아침에 제때 일어나는 데 도움이 되는 몇 가지 방법입니다.

Rent Please!를 플레이하기 위한 팁 초보자를 위한 집주인 시뮬레이션

Rent Please!를 플레이하기 위한 팁 초보자를 위한 집주인 시뮬레이션

임대해 주세요! Landlord Sim은 iOS와 Android에서 플레이할 수 있는 모바일 시뮬레이션 게임입니다. 여러분은 아파트 단지의 집주인 역할을 하며 아파트 내부를 업그레이드하고 세입자가 입주할 수 있도록 준비하여 임대를 시작하게 됩니다.

최신 욕실 타워 디펜스 코드 및 코드 입력 방법

최신 욕실 타워 디펜스 코드 및 코드 입력 방법

욕실 타워 디펜스 Roblox 게임 코드를 받고 신나는 보상을 받으세요. 이들은 더 높은 데미지를 지닌 타워를 업그레이드하거나 잠금 해제하는 데 도움이 됩니다.