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
}
→ Get my Go Handbook
→ I wrote 17 books to help you become a better developer:
- C Handbook
- Command Line Handbook
- CSS Handbook
- Express Handbook
- Git Cheat Sheet
- Go Handbook
- HTML Handbook
- JS Handbook
- Laravel Handbook
- Next.js Handbook
- Node.js Handbook
- PHP Handbook
- Python Handbook
- React Handbook
- SQL Handbook
- Svelte Handbook
- Swift Handbook
Also, 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