Nested Structure in Golang
In Go, you can create nested structures by including one struct as a field within another struct. This allows you to build more complex data structures that have a hierarchical or nested relationship. Here’s how you can define and use nested structures:
package main
import "fmt"
// Outer struct
type Address struct {
City string
State string
}
// Inner struct
type Person struct {
FirstName string
LastName string
Contact Address // Nested struct as a field
}
func main() {
// Creating a nested structure
person1 := Person{
FirstName: "John",
LastName: "Doe",
Contact: Address{
City: "New York",
State: "NY",
},
}
// Accessing fields of nested structures
fmt.Println("First Name:", person1.FirstName)
fmt.Println("Last Name:", person1.LastName)
fmt.Println("City:", person1.Contact.City)
fmt.Println("State:", person1.Contact.State)
}Output :
First Name: John
Last Name: Doe
City: New York
State: NYIn this example, we define two structs: Address and Person. The Person struct contains an instance of the Address struct as one of its fields. This creates a nested relationship between the two structs.
When creating a nested structure, you provide the values for the inner struct’s fields as part of the outer struct’s initialization. To access fields of the nested structure, you use dot notation to chain the field names, such as person1.Contact.City to access the city field within the nested Address struct.
Nested structures are useful for modeling real-world relationships and hierarchies within your data. They allow you to represent complex data structures in a more organized and intuitive manner.
Here’s another example demonstrating the use of nested structures to model a company’s employee information:
package main
import "fmt"
// Inner struct
type Address struct {
City string
Province string
}
// Outer struct
type Employee struct {
FirstName string
LastName string
Contact Address
Position string
Salary float64
}
func main() {
// Creating a nested structure
employee := Employee{
FirstName: "Alice",
LastName: "Johnson",
Contact: Address{
City: "Seattle",
Province: "Washington",
},
Position: "Software Engineer",
Salary: 75000.0,
}
// Accessing fields of nested structures
fmt.Println("Employee:", employee.FirstName, employee.LastName)
fmt.Println("Position:", employee.Position)
fmt.Println("City:", employee.Contact.City)
fmt.Println("Province:", employee.Contact.Province)
fmt.Println("Salary:", employee.Salary)
}Output :
Employee: Alice Johnson
Position: Software Engineer
City: Seattle
Province: Washington
Salary: 75000In this example, we define two structs: Address and Employee. The Employee struct includes an instance of the Address struct as one of its fields. This allows us to store both personal and contact information for each employee.
By using nested structures, you can create more detailed and organized representations of complex data relationships. This is particularly useful when dealing with data that has multiple layers of information, such as addresses within employee information or items within an order.






