Начал изучать Go, попалась такая конструкция: type IPAddr [4]byte
Понимаю, что объявление своего типа "byte", а как понять, то что перед типом указано - [4] ?
В го конкретно в данном случае это будет частью типа, по сути это означает, что массив (именно массив а не слайс) - это отдельный тип, который представляет из себя последовательность из 4 элементов.
Массив считается отдельным типом сам по себе, т.е. [4]byte, [3]byte, []byte это три разных типа.
дополню, что это позволяет использовать массивы в прямых сравнениях [4]byte{1,2,3,4} == [4]byte{1,3,3,1}, соответственно и в switch case, и как ключи в map