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

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을 설치하는 방법에 대한 자세한 단계별 가이드입니다.

Golang에서 같은 이름을 가진 메서드

Golang에서 같은 이름을 가진 메서드

Golang에서는 같은 패키지에 같은 이름의 메서드를 두 개 이상 만들 수 있지만, 이러한 메서드의 수신자는 서로 다른 유형이어야 합니다.

Go의 함수

Go의 함수

Go에서 함수는 특정 작업을 수행하는 코드 블록으로, 프로그램 전체에서 재사용하여 메모리를 절약하고, 가독성을 높이고, 시간을 절약할 수 있습니다.

Go에서의 변수 범위

Go에서의 변수 범위

Golang에서 변수의 범위는 해당 변수에 접근할 수 있는 프로그램의 부분을 결정합니다. Go에서는 모든 식별자가 컴파일 시점에 결정되는 어휘 범위를 갖습니다.

그룹 채팅을 위한 6가지 iMessage 앱

그룹 채팅을 위한 6가지 iMessage 앱

그룹 채팅을 위해 설치할 수 있는 iMessage 앱이 많이 있으며, 이를 통해 그룹 구성원과의 대화 경험을 향상시킬 수 있습니다. 그룹 채팅을 위한 iMessage 앱 6개 목록은 다음과 같습니다.

CMOS 배터리 교체 방법

CMOS 배터리 교체 방법

컴퓨터의 시간 또는 날짜 설정이 손실되거나 CMOS 읽기 오류, CMOS 체크섬 오류 또는 CMOS 배터리 오류 메시지가 표시되는 경우 CMOS 배터리를 교체해야 합니다.

최신 슈퍼비스트 리더 코드 및 코드 입력 방법

최신 슈퍼비스트 리더 코드 및 코드 입력 방법

슈퍼 비스트 리더 코드는 플레이어가 슈퍼 트레이너가 되는 것을 지원하여 매력적인 보상을 얻는 데 도움이 됩니다. 최신 슈퍼비스트 리더 코드 목록과 코드 입력 방법은 아래와 같습니다.

다이킨 에어컨 타이머를 원하는 시간에 켜지고 꺼지도록 설정하는 방법

다이킨 에어컨 타이머를 원하는 시간에 켜지고 꺼지도록 설정하는 방법

다이킨 에어컨 타이머는 사용자가 집에 오기 전에 에어컨을 켜거나 잠자는 동안 에어컨을 끄기 위해 타이머를 설정하는 데 자주 사용하는 유용한 기능 중 하나입니다.

세탁기 타이머가 종종 틀리는 이유

세탁기 타이머가 종종 틀리는 이유

오늘날 대부분의 세탁기는 표시 시간과 실제 세탁 시간 차이가 10~20분입니다.

토시바 에어컨 리모컨 배터리 교체 방법

토시바 에어컨 리모컨 배터리 교체 방법

토시바 에어컨 리모컨 배터리를 교체하는 방법은? Toshiba 에어컨 리모컨 배터리를 교체하는 방법에 대해 알아보려면 아래 기사를 읽어보세요.

최신 Hero AFK: VNG Royal War 코드 요약

최신 Hero AFK: VNG Royal War 코드 요약

Hero AFK: VNG War 기프트 코드를 입력하면 다양한 귀중한 게임 내 아이템을 받을 수 있습니다. 지금 알아보세요

최신 미니 영웅 Dai Chien Tam Quoc 코드

최신 미니 영웅 Dai Chien Tam Quoc 코드

코드 미니 히어로즈 다이 치엔 탐 꾸옥은 플레이어에게 돈, 다이아몬드, 일반 경험치, 캐릭터 경험치, 체력, 백만 군인 명령서 등 다양한 매력적인 아이템을 제공합니다.

Google Gemini를 사용해야 하는 5가지 이유

Google Gemini를 사용해야 하는 5가지 이유

경쟁사만큼 널리 알려지지는 않았지만, 구글의 제미니 AI는 많은 장점을 가지고 있습니다. 제미니에 주목할 만한 다섯 가지 이유를 소개합니다.

AI 기술로 만든 3분짜리 영상, 일본 애니메이션 업계에 공포 불러일으켜

AI 기술로 만든 3분짜리 영상, 일본 애니메이션 업계에 공포 불러일으켜

넷플릭스는 최근 AI 기술을 이용해 만든 3분짜리 애니메이션 영화 '개와 소년'을 자사 YouTube 채널에 공개해 일본 시장을 공략했습니다.

PXE-E61 오류 수정 방법: 미디어 테스트 실패, 케이블 확인

PXE-E61 오류 수정 방법: 미디어 테스트 실패, 케이블 확인

PXE-E61 오류는 일부 마더보드에서 지원하는 PXE(Preboot eXecution Environment)와 관련이 있습니다. PXE는 로컬 하드 드라이브가 아닌 네트워크를 통해 부팅 가능한 운영 체제를 검색하여 로드할 수 있는 특수 부팅 모드입니다.

Microsoft Authenticator를 암호 관리자로 사용하는 방법

Microsoft Authenticator를 암호 관리자로 사용하는 방법

이 인기 있는 2단계 인증 앱을 사용하여 어떤 기기에서든 비밀번호를 안전하게 보호하는 방법을 알아보겠습니다.

OpenAI, 새로운 브라우저로 구글 크롬에 도전

OpenAI, 새로운 브라우저로 구글 크롬에 도전

OpenAI는 Google Chrome과 직접 경쟁할 수 있는 웹 브라우저 프로젝트를 진행 중이라고 합니다.

VPN을 사용하더라도 일부 앱은 여전히 ​​사용자의 실제 위치를 알고 있습니다.

VPN을 사용하더라도 일부 앱은 여전히 ​​사용자의 실제 위치를 알고 있습니다.

가상 사설망(VPN)을 사용하는 한 가지 이점은 실제 위치를 가릴 수 있다는 것입니다. 하지만 그것이 당신의 주된 목표라면, 일부 앱은 여전히 ​​당신의 물리적 위치를 알 수 있다는 사실에 놀랄 수도 있습니다.

연인에게 보내는 가장 진심 어린 사과는 그가 화를 빨리 멈추는 데 도움이 됩니다.

연인에게 보내는 가장 진심 어린 사과는 그가 화를 빨리 멈추는 데 도움이 됩니다.

연인에게 사과하여 용서를 구하는 방법에 대한 설명입니다. 이 글에서는 연인에게 감동을 줄 수 있는 사과문 캡션을 요약해드리겠습니다.