Nested Structure in Golang

A structure or struct in Golang is a user-defined type that allows us to create a group of elements of different types into a single unit. Any real-world entity that has some set of properties or fields can be represented as a struct.

Nested Structure in Golang

How to use nested structures in Golang

Go language allows nested structures. A structure that is a field of another structure is called a Nested Structure. In other words, a structure inside another structure is called a Nested Structure. Syntax:

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

}

Consider the following example to understand nested structure in Golang:

Example 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)
}

Result:

Details of Author
{{Sona ECE 2013}}

Example 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)
}

Result:

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

Example 3:

In Go, a structure can have fields that are themselves structures, called nested structures. Here is an example of a structure that has a nested structure:

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)
}

Result:

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

Here, we define two struct types: Person and Address. Person has a nested struct field called Address. In the main function, we create a new instance of Person with an Address field. Then, we print the values ​​of various fields of the Person and Address structs using dot notation to access the nested fields.

Sign up and earn $1000 a day ⋙

Leave a Comment

Keywords in Go

Keywords in Go

Keyword - Keywords are words in a language that are used for some internal processes or represent some predefined actions. Here is what you need to know about keywords in Golang.

Data types in Golang

Data types in Golang

Data types specify what type of data a valid Go variable can hold. In the Go language, types are divided into four categories as follows:

Function arguments in Golang

Function arguments in Golang

Go supports two main ways to pass arguments: Pass by Value and Pass by Reference. Go uses pass by value by default.

Function returning multiple values ​​in Golang

Function returning multiple values ​​in Golang

In Go language, you are allowed to return multiple values ​​from a function, using the return statement. In other words, in a function, a return statement can return multiple values.

Switch Statement in Go

Switch Statement in Go

Golang like most other programming languages ​​has switch statement. Here is how to use switch statement in Golang.

Cases to know when using selection statements in Golang

Cases to know when using selection statements in Golang

In this article, we will learn how to use default case to avoid deadlock. But first, we will learn what is deadlock case when using select command in Golang?

Anonymous structures and fields in Golang

Anonymous structures and fields in Golang

Anonymous structs in Golang are temporary structures with no names used for one-time purposes, while anonymous fields allow embedding of unnamed fields.

How to use Rune in Golang

How to use Rune in Golang

What is Rune in Golang? How to use Rune in Golang? This article will give you the answer.

How to use operators in Golang

How to use operators in Golang

Operators allow us to perform different types of operations on operands. In Go language, operators can be classified based on their different functions.

Void identifier in Golang

Void identifier in Golang

_(underscore) in Golang is called Blank Identifier. Identifier is a user-defined name of program elements used for identification purposes.

How to create basic program in Golang

How to create basic program in Golang

Hello, World! is the first basic program in any programming language. You can write this first program in Golang by following the steps below.

How to Install Go on Windows

How to Install Go on Windows

Golang can be easily installed on Windows. Here is a step-by-step guide to install Golang on Windows.

Methods with the same name in Golang

Methods with the same name in Golang

Golang allows creating two or more methods with the same name in the same package, but the receivers of these methods must be of different types.

Functions in Go

Functions in Go

In Go, functions are blocks of code that perform specific tasks, which can be reused throughout the program to save memory, improve readability, and save time.

Variable Scope in Go

Variable Scope in Go

The scope of a variable in Golang determines which part of the program the variable is accessible to. In Go, all identifiers have a lexical scope that is determined at compile time.

10 indispensable apps for book lovers

10 indispensable apps for book lovers

Just because you don't have a book on you doesn't mean you have to stop reading. All you need is your phone to try out social media apps for book lovers and find the next book you want to read.

Learn About Spotify Connect: The Spotify Feature Thats Forced Users to Quit YouTube Music

Learn About Spotify Connect: The Spotify Feature Thats Forced Users to Quit YouTube Music

The ability to control music playing on one device from another is an underrated feature that YouTube Music doesn't have — and that forces people to turn to Spotify.

How to Make a Snowball Explode in Minecraft Bedrock & Java Editon

How to Make a Snowball Explode in Minecraft Bedrock & Java Editon

Minecraft commands allow players to create many interesting effects and one interesting option is to make snowballs explode. Here is how to make snowballs explode in Minecraft.

Does Your PC Have an NPU? Heres How to Check

Does Your PC Have an NPU? Heres How to Check

On Windows 11, you can quickly check if your computer has an NPU (Neural Processing Unit), through 3 very simple ways.

Is Hibernate mode bad for PC?

Is Hibernate mode bad for PC?

Hibernate mode was born out of the need to keep the computer on 24/7 without wanting to drain the battery or to ensure the system is not affected by power failure, unlike the case of Sleep mode.

Instructions to add Euro 2024 calendar on iPhone

Instructions to add Euro 2024 calendar on iPhone

Adding the Euro 2024 calendar on iPhone helps users easily follow matches within the framework of Euro 2024, a football tournament with exciting matches.

Summary of information about Samsung One UI 7

Summary of information about Samsung One UI 7

Samsung Galaxy phones running One UI 7.0 will be more secure with Lockdown Mode, preventing unauthorized attacks.

How to create poster effect for photos in Photoshop

How to create poster effect for photos in Photoshop

Add a quick and easy poster effect to your images using Photoshop to recreate the classic look of posters printed with limited ink colors.

How to switch between old Outlook and new Outlook

How to switch between old Outlook and new Outlook

Not everyone is familiar with the new Outlook interface and wants to go back to the old Outlook to use the full features and more customizations on Outlook. Below is a guide to switch between the old Outlook and the new Outlook.

Learn About Organic Maps: An Open Source Alternative to Google Maps

Learn About Organic Maps: An Open Source Alternative to Google Maps

Organic Maps is a free, open-source mapping app for Android and iOS, developed by the same team behind MapsWithMe, first launched in 2011.

6 steps to wash shoes in the washing machine without worrying about damage

6 steps to wash shoes in the washing machine without worrying about damage

It seems like washing shoes in a washing machine is an absolute no-no, but with just 6 simple steps below, you can completely wash your shoes in a washing machine without worrying about damage.

9 reasons why the refrigerator is not freezing and how to fix it

9 reasons why the refrigerator is not freezing and how to fix it

There are 9 reasons why the refrigerator does not freeze. Our article below will summarize the common reasons and how to handle this situation.

Its time to switch to Passkey: The anti-phishing password alternative!

Its time to switch to Passkey: The anti-phishing password alternative!

With passkey, the modern alternative to traditional passwords, you won't have to worry about remembering, managing (with or without a password manager) or resetting your password ever again.

How to backup browser: Bookmarks, extensions, passwords, etc.

How to backup browser: Bookmarks, extensions, passwords, etc.

Whether you're switching browsers permanently or just want to reduce the chance of data loss, you need to back up your browser periodically.

Why do buffaloes and cows only need to eat grass to get enough nutrients?

Why do buffaloes and cows only need to eat grass to get enough nutrients?

Why do cattle eat grass and still get fat and produce nutritious milk? If you want to know why grass-eating animals get fat, please read the article below.