Что конкретно не работает то?
https://play.golang.org/p/jKdBOpSGwlMЯ что-то не то изобразил?
Цитата:
Окончательный вариант вообще вот, такой
Этот код вообще какой-то неадекватный. Я не понимаю что ты изобразить пытаешься )
Срезы в Go - это по сути List из C#. Ну или массив в почти любом скриптовом языке. Т.е. обычный динамический массив с доп плюшками.
Разница только в том, что пересоздание массива в Go явное.
Потому в 99% случаев присваивание x = append(y, z) будет некорректным, т.к. append пересоздает (создает новый) срез. Это тебя видимо и запутало.
Правильный код:
x = append(
x, z)
Проще всего запомнить что это аналог x = x + z. Очевидно что это не то же самое что x = y + z
ps Рекомендую хотя бы раз посмотреть в официальную документацию или книгу:
https://tour.golang.org/moretypes/15Цитата:
The resulting value of append is a slice containing all the elements of the original slice plus the provided values.
If the backing array of s is too small to fit all the given values a bigger array will be allocated. The returned slice will point to the newly allocated array.