Задать вопрос
@Artem0071
Безработный mr. Junior

Почему так происходит и как делать правильно?

Пытаюсь разобраться в го. Столкнулся со странным поведением: https://play.golang.org/p/7NXR0BeHlgj
Получается что "i" всегда по ссылке, и когда мы "d" присваиваем, то при следующем изменении "i" всегда будет меняться и "d"? Как в таком случае правильно будет делать выборку? Break ставить после присвоения единственное до чего додумался -_- . Но такое странное "внутреннее" ощущение что я не так делаю
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@ghostiam
На Go писатель, серверов пинатель.
вот фикс
https://play.golang.org/p/TR38meeQAH7
или
https://play.golang.org/p/WdGTLqGaoAD

это происходит, потому что так работает range, он копирует элемент из массива и перезаписывает переменную i при каждой итерации, поэтому нужно или скопировать её(как в примере 1), или передавать её через замыкание(как в 2 и в случае с горутинами).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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