Table of Contents
This updated guide explores nested structure in golang with practical details, clear explanations, and useful takeaways. 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.

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 these 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.
FAQ
What is the main takeaway about Nested Structure in Golang?
The key is to understand the core idea, compare the available options, and apply the practical guidance that matches your situation.
What should beginners know about Nested Structure in Golang?
Start with the essential steps and terminology. Avoid changing advanced settings until you understand how they affect performance, privacy, cost, or compatibility.
How can I use this information in practice?
Follow the relevant section in order, test one change at a time, and confirm the result before moving to the next step or recommendation.
Reader Comments 0
Sign in with email or Google to join the discussion.