Declaring Structs in Go Programming
Introduction to Structs
In Go, a struct is a composite data type that groups together variables under a single name. These variables are called fields. Structs are useful for grouping data to form records. Each field within a struct can have a different data type.
Basic Declaration
To declare a struct, you use the type keyword followed by the name of the struct and the struct keyword. The fields of the struct are enclosed in curly braces.
type Person struct { Name string Age int }
In this example, we have declared a struct named Person with two fields: Name of type string and Age of type int.
Creating an Instance of a Struct
Once a struct is declared, you can create an instance of it. You can do this by using the struct type name followed by curly braces containing the field values.
var p Person p = Person{Name: "John", Age: 30}
Here, we have created an instance p of the Person struct and assigned values to its fields.
Accessing and Modifying Struct Fields
You can access and modify the fields of a struct instance using the dot (.) operator.
fmt.Println(p.Name) // Output: John p.Age = 31 fmt.Println(p.Age) // Output: 31
In this example, we accessed the Name field of p and printed it. We then modified the Age field and printed it.
Anonymous Structs
Go also supports anonymous structs, which are useful when you want to define a one-off struct without declaring a new type.
student := struct { Name string Grade int }{ Name: "Alice", Grade: 90, }
In this example, we have declared an anonymous struct with fields Name and Grade and created an instance of it.
Nested Structs
Structs in Go can be nested, meaning a struct can have fields that are themselves structs.
type Address struct { City string ZipCode int } type Employee struct { Name string Address Address }
In this example, we have declared an Address struct and an Employee struct that contains an Address field.
Example: Declaring and Using Structs
Let's put everything together in a complete example. We'll declare a struct, create an instance of it, and access its fields.
package main import "fmt" type Person struct { Name string Age int } func main() { p := Person{Name: "John", Age: 30} fmt.Println("Name:", p.Name) fmt.Println("Age:", p.Age) p.Age = 31 fmt.Println("Updated Age:", p.Age) }
In this example, we declared a Person struct, created an instance of it, and accessed and modified its fields.
Age: 30
Updated Age: 31