Введение в указатели в Go
При присваивании значение одной переменной записывается в другую. В новую переменную попадает копия. Имена никак не связаны, их можно менять независимо.
Запишем число в num1, скопируем его
в num2 и запишем в num2 другое
число. num1 останется прежним:
package main
import "fmt"
func main() {
num1 := 3
num2 := num1
num2 = 7
fmt.Println(num1) // выведет 3
}
Иногда нужно работать не с копией, а с тем же значением в памяти. Для этого в Go есть указатель - переменная, которая хранит адрес другого значения. По адресу можно дойти до исходных данных и изменить их так, что это увидят все обращения к этому месту.
Дальше займемся указателями.