Как объединить (сделать merge) два массива или slice в Golang

Такая простая задача в Go lang делается весьма не тривиальным способом:

var a = []int{1, 2}
var b = []int{3, 4}
var c = append(a, b...)

Обратите внимание на то, что после переменной b идёт троеточие, для того, чтобы развернуть элементы массива в последовательный список аргументов. Фактически этот код будет эквивалентен такому:

var c = append(a, 3, 4)