Задать вопрос
@kool2009

Если в glang перемнная передана в func, то она там живёт сомостоятельно или в пямяти 1 адрес?

Если я передал переменную функции, то она передается и адресация памяти для неё новая? Или всё же мы ссылаемся на изначальную переменную и из функции с ней работаем как и в main?
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
В Го по-умолчанию переменные передаются по значению (то есть, копируются на стеке), но есть нюансы.

1. Мапы и каналы всегда передаются по указателю.
2. У слайса на стеке только дескриптор, так что он копируется, но данные, на которые слайс указывал, остаются там же в памяти, где и были.
3. Если вы явно передаете указатель, то тут все очевидно.
4. У интерфейсов копируется дескриптор, но т.к. в дескрипторе указатель, то тут все как со слайсами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы