Skip to main content
Home
Gerald Villorente

Main navigation

  • Home
  • Blog

Breadcrumb

  1. Home

Getting Started with Go Struct: A Comprehensive Guide

By gerald, 3 April, 2023
struct

Photo by Pixabay: https://bit.ly/3K5bSNk

Go is a popular programming language for building scalable and efficient applications. One of the key features of Go is its support for struct, which is a composite data type that allows you to group related data together.

In this blog post, we'll explore what Go struct is, how to define it, and how to use it effectively in your Go programs.

What is a Struct in Go?

In Go, a struct is a composite data type that allows you to group together related data items of different types into a single unit. You can think of a struct as a container for different data fields, each with its own name and data type.

Here's an example of a struct definition in Go:

type Person struct {
    Name string
    Age int
    Address string
}

In this example, we define a struct called Person that contains three fields: Name of type string, Age of type int, and Address of type string.

How to Define a Struct in Go?

To define a struct in Go, you need to use the type keyword followed by the name of the struct and its fields in curly braces. Each field has a name and a data type separated by a space.

Here's the general syntax for defining a struct in Go:

type StructName struct {
    FieldName1 FieldType1
    FieldName2 FieldType2
    ...
}

For example, here's a struct definition for a car:

type Car struct {
    Make string
    Model string
    Year int
    Color string
}

In this example, we define a struct called Car that contains four fields: Make of type string, Model of type string, Year of type int, and Color of type string.

How to Create an Instance of a Struct in Go?

To create an instance of a struct in Go, you can use the var keyword followed by the name of the instance and the struct literal enclosed in curly braces. You can also initialize the fields of the struct using the dot notation.

Here's an example of creating an instance of the Person struct we defined earlier:

var john Person
john.Name = "John"
john.Age = 30
john.Address = "123 Main Street"

In this example, we create an instance of the Person struct called john and initialize its fields using the dot notation.

You can also create an instance of a struct using the & operator to get a pointer to the struct:

var john *Person = &Person{
    Name: "John",
    Age: 30,
    Address: "123 Main Street",
}

In this example, we create a pointer to a Person struct called john and initialize its fields using the struct literal syntax.

How to Access Fields in a Struct in Go?

To access fields in a struct in Go, you can use the dot notation followed by the name of the field. For example, to access the Name field of the Person struct we defined earlier, you can use the following code:

fmt.Println(john.Name)

This will print the value of the Name field of the john instance.

How to Embed Structs in Go?

In Go, you can also embed one struct into another to create a more complex data structure. This is called struct embedding.

Here's an example of embedding a Person struct into an Employee struct:

type Employee struct {
    Person
    Id int
    Salary float64
}

func main() {
    john := Employee{
        Person: Person{
            Name: "John",
            Age: 30,
            Address: "123 Main Street",
        },
        Id: 123,
        Salary: 50000.0,
    }
    fmt.Println(john.Name) 
    fmt.Println(john.Age) 
    fmt.Println(john.Address) 
    fmt.Println(john.Id) 
    fmt.Println(john.Salary) 
}

The out of the above code is:

John
30
123 Main Street
123 ​
​​​​​​50000.0

In this example, we define an Employee struct that embeds the Person struct we defined earlier. We then create an instance of the Employee struct called john and initialize its fields using the struct literal syntax.

We can then access the fields of both the Employee and Person structs using the dot notation.

Conclusion

In summary, structs are a powerful feature of Go that allow you to group related data together and create complex data structures. By defining and using structs effectively in your Go programs, you can write more maintainable, scalable, and efficient code.

I hope you found this introduction to Go struct helpful. If you have any questions or feedback, feel free to leave a comment below!

Tags

  • golang
  • struct
  • programming
  • Log in or register to post comments

Comments

Recent content

  • Fixing the "Malware Detected" Error in Docker for macOS
  • How to Manage Large Log Files in Go: Truncate a Log File to a Specific Size
  • Taming the Slowpokes: A Guide to Conquering Sluggish MySQL Queries
  • Taming the Slow Beast: Using Percona pt-query-digest to Diagnose MySQL Bottlenecks
  • Speed Up Your Web App: The Ins and Outs of Redis
  • Cherishing the Present: A Timeless Gift for Your Loved Ones
  • Diving Deep: Redis Slowlog vs. Redis MONITOR
  • MSET vs. HSET: Storing Data Efficiently in Redis
  • Installing TP-Link AC600 Wireless Adapter on Manjaro with Realtek RTL8811AU
  • Understanding Variadic Parameters in Go (Golang)
RSS feed

This website is powered by Drupal and Pantheon WebOps Platform.

pantheon