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.
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.
You should read it
- What is GoLang? How to install GoLang on Windows 10
- Difference between Go and C++
- What is Golang? Things you need to know about Golang programming language
- What is Golang? Why should you use Golang language?
- What is the difference between Go and Java?
- How to create basic program in Golang
- How to Install Go on Windows
- How to implement a graph data structure in Golang
- Difference between Go and Python
- Malware that specializes in eavesdropping and sabotage is discovered hiding on Telegram
- The development flow of programming languages, new problems that are not new
- 10 programming languages booming today
May be interested
What is Docker Compose? Summary of knowledge about Docker compose
What is Golang? Why should you use Golang language?
What is Codeigniter? Advantages and Disadvantages of Codeigniter Framework
Top best and most effective XML file reading software on computer
What is Vim? Detailed installation and usage instructions
What is CSS3? What's new and different from traditional CSS?