Массив — коллекция элементов одного типа с фиксированным размером, который задаётся при объявлении и является частью типа.
var a [5]int // [0, 0, 0, 0, 0]
b := [3]string{"a", "b", "c"}
c := [...]int{1, 2, 3} // размер выводится компилятором: [3]int
[3]int и [5]int — разные типы, их нельзя присвоить друг другу. Массив передаётся по значению — при передаче в функцию копируется целиком. Именно поэтому в Go почти всегда используют слайсы, а не массивы.