Как объединить слайсы?

Junior
646 просмотров
AFK Offer AI

Основной способ — append с распаковкой:

a := []int{1, 2, 3}
b := []int{4, 5, 6}
result := append(a, b...)
// result: [1, 2, 3, 4, 5, 6]

Важный нюанс: append модифицирует a если у него достаточно capacity! Чтобы не трогать оригинал:

result := append([]int{}, a...)
result = append(result, b...)
// или с Go 1.21:
result := slices.Concat(a, b)

Для множества слайсов:

var result []int
for _, s := range slices {
    result = append(result, s...)
}

Функция slices.Concat из стандартной библиотеки (Go 1.22) — самый чистый способ.

Следующий вопрос

Что такое embed в Go?