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
}
Lessons in this unit:
| 0: | Introduction |
| 1: | Conditionals |
| 2: | Loops |
| 3: | Functions |
| 4: | ▶︎ Pointers |
| 5: | Structs |
| 6: | Methods |
| 7: | Interfaces |
| 8: | Set |
| 9: | Binary Search Tree |
| 10: | Go workspaces |
| 11: | Profiling |
| 12: | Go and Docker |
| 13: | Tutorial: REST API |
| 14: | Building a web crawler |