Pointers in Go
Suppose you have a variable:
age := 20
Using &age
you get the pointer to the variable, its memory address.
When you have the pointer to the variable, you can get the value it points to by using the *
operator:
age := 20
ageptr = &age
agevalue = *ageptr
This is useful when you want to call a function and pass the variable as a parameter. Go by default copies the value of the variable inside the function, so this will not change the value of age
:
func increment(a int) {
a = a + 1
}
func main() {
age := 20
increment(age)
//age is still 20
}
You can use pointers for this:
func increment(a *int) {
*a = *a + 1
}
func main() {
age := 20
increment(&age)
//age is now 21
}
→ Here's my latest YouTube video
→ Get my Go Handbook
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025