0
0
GoConceptBeginner · 3 min read

When to Use Pointer in Go: Simple Guide for Beginners

Use pointers in Go when you want to share or modify the original data without copying it. They help save memory and allow functions to change variables outside their scope by passing the variable's address.
⚙️

How It Works

Think of a pointer as a signpost that points to a specific place in your computer's memory where data is stored. Instead of carrying the whole data around, you just carry the signpost, which is much lighter and faster.

When you pass a pointer to a function, you give it the address of the data, not a copy. This means the function can directly change the original data, like giving someone the key to your house instead of a photo of it.

This helps programs run faster and use less memory, especially when dealing with large data like big lists or complex structures.

💻

Example

This example shows how a pointer lets a function change the original number by passing its address.

go
package main

import "fmt"

func increase(num *int) {
    *num = *num + 1
}

func main() {
    value := 5
    fmt.Println("Before:", value)
    increase(&value) // pass address of value
    fmt.Println("After:", value)
}
Output
Before: 5 After: 6
🎯

When to Use

Use pointers in Go when:

  • You want to modify a variable inside a function and see the change outside.
  • You want to avoid copying large data structures to save memory and improve speed.
  • You need to share data between parts of your program without duplicating it.

For example, when working with large arrays, structs, or when implementing linked data structures like linked lists or trees, pointers are essential.

Key Points

  • Pointers hold memory addresses, not the actual data.
  • Passing pointers allows functions to modify original variables.
  • Using pointers can improve performance by avoiding data copies.
  • Always be careful to avoid nil pointers to prevent program crashes.

Key Takeaways

Use pointers to modify original data without copying it.
Pointers improve performance by saving memory and speed.
Pass variable addresses to functions to allow changes outside.
Avoid nil pointers to keep your program safe.
Pointers are essential for working with large or complex data.