Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Передача срезов в функции в Go (справочная семантика)

Автор: Gary Clarke

Загружено: 2025-12-24

Просмотров: 73

Описание:

Передача срезов в функции может поначалу удивлять, поскольку изменения, внесенные внутри функции, обычно отображаются в основной функции. В этом уроке по Go вы узнаете, почему срезы ведут себя таким образом, как работает базовый массив и что происходит при добавлении элемента в срез.

Что вы узнаете:
Почему передача среза в функцию не копирует базовые данные
Как срезы используют заголовок, указывающий на общий базовый массив
Почему изменение элементов через срез обновляет исходный массив
Что происходит, когда при добавлении создается новый массив в зависимости от его емкости

Концептуальное объяснение:
Срезы в Go имеют семантику ссылок. Срез содержит небольшой заголовок, указывающий на базовый массив, где хранятся фактические данные. Когда вы передаете срез в функцию, Go копирует только заголовок, а не базовый массив. Этот заголовок по-прежнему указывает на то же базовое хранилище, поэтому обновления элементов влияют на те же данные, которые видит вызывающая сторона. Однако, когда вы добавляете элемент в срез и емкости недостаточно, 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

Передача срезов в функции в Go (справочная семантика)

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Вариативные функции в игре Го

Вариативные функции в игре Го

Руны, байты и строки в языке Go

Руны, байты и строки в языке Go

14. Longest Common Prefix | LeetCode

14. Longest Common Prefix | LeetCode

Как взломать любое программное обеспечение

Как взломать любое программное обеспечение

Утверждения типов в Go

Утверждения типов в Go

Typst: Современная замена Word и LaTeX, которую ждали 40 лет

Typst: Современная замена Word и LaTeX, которую ждали 40 лет

Она мастер спорта по боксу! Как тренируются лучшие девушки боксеры

Она мастер спорта по боксу! Как тренируются лучшие девушки боксеры

Программирование на ассемблере без операционной системы

Программирование на ассемблере без операционной системы

Задача про надёжный пароль | В интернете опять кто-то неправ #035 | Борис Трушин и Математик Андрей

Задача про надёжный пароль | В интернете опять кто-то неправ #035 | Борис Трушин и Математик Андрей

Очередное ПОТРЯСЕНИЕ ИИ! Google Снова Разгромил Big Tech! Google Видео Потрясло Всех! xAI в Пентагон

Очередное ПОТРЯСЕНИЕ ИИ! Google Снова Разгромил Big Tech! Google Видео Потрясло Всех! xAI в Пентагон

Именованные возвращаемые значения в Go

Именованные возвращаемые значения в Go

Лижут ли Вас Собаки? ВОТ ЧТО ЭТО ЗНАЧИТ (вас шокирует)!

Лижут ли Вас Собаки? ВОТ ЧТО ЭТО ЗНАЧИТ (вас шокирует)!

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

Использование функции make() в Go

Использование функции make() в Go

Инициализирующие условия операторов if в Go

Инициализирующие условия операторов if в Go

Передача карт в функции в Go (справочная семантика)

Передача карт в функции в Go (справочная семантика)

Для Чего РЕАЛЬНО Нужен был ГОРБ Boeing 747?

Для Чего РЕАЛЬНО Нужен был ГОРБ Boeing 747?

The Windows 11 Disaster That's Killing Microsoft

The Windows 11 Disaster That's Killing Microsoft

16 УДИВИТЕЛЬНЫХ ФУНКЦИЙ VLC, о существовании которых вы не знали! 2026

16 УДИВИТЕЛЬНЫХ ФУНКЦИЙ VLC, о существовании которых вы не знали! 2026

Эта Хитрая Задача С Мехмата Завалила Сотни! Решишь?

Эта Хитрая Задача С Мехмата Завалила Сотни! Решишь?

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com