Что такое указатель в Go?

Junior
1.3k просмотров
AFK Offer AI

Указатель хранит адрес переменной в памяти. *T — тип указателя на T. &x — взять адрес, *p — разыменовать (получить значение).

x := 42
p := &x       // p *int, указывает на x
fmt.Println(*p) // 42
*p = 100
fmt.Println(x)  // 100 — изменили через указатель

В Go нет арифметики указателей (как в C). Указатели нужны для:

  • Изменения значения в функции (pass by pointer)
  • Избежания копирования больших структур
  • Обозначения «отсутствия значения» (nil)
func increment(n *int) {
    *n++
}

Следующий вопрос

Как работает оператор select?