Использование указателей в качестве параметров функций в Go
Автор: Gary Clarke
Загружено: 2025-12-11
Просмотров: 75
Описание:
В Go всё, что вы передаёте в функцию, передаётся по значению. Это означает, что функция получает копию данных, а не оригинал. В большинстве случаев это нормально, но иногда требуется, чтобы функция изменила исходное значение. Для этого нужно передать указатель. Указатель предоставляет функции доступ к исходным данным в памяти, поэтому любые изменения, внесённые внутри функции, будут видны и за её пределами. Этот байт Go показывает разницу между передачей значения и указателя, а также случаи, когда каждый подход имеет смысл.
Что вы изучите:
Как Go передаёт значения по умолчанию (функции получают копии)
Как передавать указатели в функции, чтобы разрешить изменение исходного значения
Разница между передачей значения и передачей указателя
Когда использовать каждый подход в вашем коде
Концептуальное объяснение:
Когда вы передаёте значение в функцию в Go, функция получает копию этого значения. Любые изменения, внесённые в копию внутри функции, не влияют на оригинал. Это поведение Go по умолчанию, которое хорошо работает, когда вам не нужно изменять исходное значение. Однако, когда вы хотите, чтобы функция изменила исходное значение, вы передаете указатель. Указатель хранит адрес памяти значения, поэтому при передаче указателя на функцию функция может получить доступ к исходным данным и изменить их. Представьте, что вы передаете функции адрес данных, а не их копию. Это особенно полезно при работе со структурами, когда вы хотите обновить поля исходной структуры.
Применение:
Понимание того, как передавать указатели в функции, необходимо для написания кода на Go, изменяющего данные. Этот урок устраняет разрыв между пониманием того, что такое указатели, и их использованием с методами через приемники указателей. Как только вы поймете, как параметры указателей работают с функциями, вы будете готовы применить ту же концепцию к методам, что является основным шаблоном программирования на Go. Эти знания имеют основополагающее значение для работы со структурами, создания API и написания эффективных программ на Go.
Основные выводы:
– Передача значений отправляет копию, поэтому исходные данные не могут быть изменены.
– Передача указателя предоставляет функции доступ к исходным данным.
– Структуры ведут себя аналогично: копия не изменяет исходные данные, а указатель – да.
– Используйте указатели, когда нужно, чтобы функция обновила данные или чтобы избежать ненужного копирования.
– Используйте значения, когда вам нужны безопасность и простота, а также отсутствие необходимости внесения изменений.
Перед проверкой решения попробуйте выполнить задание из видео.
Ссылки:
Папка с уроками на GitHub: https://github.com/GaryClarke/go-byte...
Создайте своё первое приложение на Go вместе со мной: https://www.garyclarke.tech/p/build-y...
Подпишитесь на рассылку, чтобы получать новые уроки и ресурсы: https://content.garyclarke.tech/go-by...
Подпишитесь на X/Twitter: / garyclarketech
Присоединяйтесь к LinkedIn: / garyclarketech
Подпишитесь, чтобы получать больше уроков по Go.
#golang #go #programming #coding #learnprogramming #gobytes
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: