В Голанге я пытаюсь сделать функцию среза скремблирования для моей проблемы с коммивояжером. Выполняя это, я заметил, когда я начал редактировать срез, который я дал, функция скремблирования была различной при каждом ее проходе.
После некоторой отладки я узнал, что это связано с тем, что я редактировал фрагмент внутри функции. Но так как Голанг должен быть языком "перевал по значению", как это возможно?
https://play.golang.org/p/mMivoH0TuV
Я предоставил ссылку на детскую площадку, чтобы показать, что я имею в виду.
Удалив строку 27, вы получаете другой результат, чем оставляете его, это не должно иметь значения, поскольку функция должна сделать свою собственную копию среза при передаче в качестве аргумента.
Может ли кто-нибудь объяснить это явление?