Основной способ — 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) — самый чистый способ.