How to use Pointers in Go

Hey! If you love Go and building Go apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Want to learn how to build better Go applications faster and easier? You can.

Check out my course on the Go Standard Library. You can check it out now for free.


Let’s talk about pointers in Go.

A pointer is a variable that stores the memory address of another variable. Pointers allow you to indirectly access and modify the value of another variable.

Here is an example of how to use pointers in Go:

package main

import "fmt"

func main() {
    // Declare an integer variable
    x := 10

    // Declare a pointer to x
    var p *int
    p = &x

    // Print the value of x through the pointer
    fmt.Println(*p)

    // Modify the value of x through the pointer
    *p = 20

    // Print the new value of x
    fmt.Println(x)
}

In this example, the variable p is a pointer to x. The & operator is used to get the memory address of x, and the * operator is used to dereference the pointer and access the value stored at the memory address.

Pointers are useful in Go because they allow you to pass variables by reference, rather than by value. This can be more efficient in some cases because it avoids the overhead of copying large values.

It’s important to note that Go has a garbage collector, so you don’t have to worry about manually freeing memory when you’re done with pointers. However, it’s still important to be careful when using pointers to avoid potential bugs and memory leaks.


Questions or comments? Reach out to me


Learn how to leverage the Go Standard Library like a PRO.

I just created a new course, The Go Standard Library, check it out!