Go Language

Go Structs - Creating Custom Data Types


Introduction

Structs are a composite data type in Go used to create custom data structures that group related variables under a single type. In this guide, we'll explore how to define and work with structs, providing sample code to demonstrate their usage.

Defining Structs

In Go, you can define a struct using the type keyword followed by the struct's name and a list of fields. Here's an example:

                            package main
                import `fmt`
                // Define a struct named `Person` with fields `Name` and `Age`.
                type Person struct {
                    Name string
                    Age  int
                }
                func main() {
                    // Create an instance of the `Person` struct.
                    person := Person{
                        Name: `Alice`,
                        Age:  30,
                    }
                    fmt.Println(`Name:`, person.Name)
                    fmt.Println(`Age:`, person.Age)
                }
                    

In this code, we define a struct called `Person` with two fields: `Name` and `Age.` We then create an instance of the `Person` struct and access its fields.

Anonymous Structs

Go allows you to create anonymous structs, which are structs without a predefined name. They are useful for one-time data grouping. Here's an example:

                            package main
                import `fmt`
                func main() {
                    // Create an anonymous struct.
                    person := struct {
                        Name string
                        Age  int
                    }{
                        Name: `Bob`,
                        Age:  25,
                    }
                    fmt.Println(`Name:`, person.Name)
                    fmt.Println(`Age:`, person.Age)
                }
                    

In this code, we create an anonymous struct to represent a person and access its fields.

Methods on Structs

You can define methods for your custom struct types in Go. Methods are functions associated with a struct, and they enable you to perform operations on struct instances. Here's an example:

                            package main
                import `fmt`
                type Rectangle struct {
                    Width  float64
                    Height float64
                }
                // Define a method `Area` for the `Rectangle` struct.
                func (r Rectangle) Area() float64 {
                    return r.Width * r.Height
                }
                func main() {
                    rect := Rectangle{Width: 5, Height: 3}
                    area := rect.Area()
                    fmt.Println(`Rectangle Area:`, area)
                }
                    

In this code, we define a method called `Area` for the `Rectangle` struct to calculate the area of a rectangle.

Further Resources

To continue learning about Go structs and custom data types, consider these resources:

Written by Surfside Media

Senior Full Stack Developer specializing in Web Technologies.