Ответ
В Go можно создать массив с переменной в качестве размера, но только если эта переменная является константой. Размер массива должен быть известен на этапе компиляции.
const size = 5
var arr [size]int // OK - size это константа
n := 10
var arr2 [n]int // Ошибка: invalid array length n
Для динамических размеров используйте срезы:
n := 10
slice := make([]int, n) // Корректно
Массивы в Go имеют фиксированный размер, который является частью типа, поэтому размер должен быть константным выражением.