Длина как часть типа в Go
Длина входит в тип массива, поэтому два массива
разной длины: это два разных типа. Запись
[2]int и запись [3]int для языка
не одно и то же, хотя элемент в обоих случаях
целый.
Переменные одного типа можно связать присваиванием: значения копируются по правилам типа. Если длины в типах различаются, компилятор не принимает такую запись, даже когда сами числа внутри похожи по смыслу.
Объявим пару из двух целых и тройку из трех, затем попробуем записать одну переменную в другую:
pair := [2]int{1, 2}
triple := [3]int{10, 20, 30}
pair = triple
Такой код не собирается: тип [2]int
и тип [3]int не совпадают. Чтобы работать
с другим размером, нужна новая переменная
с подходящей длиной в типе.
Скажите, совпадет ли тип у [3]int
и [3]int у двух разных переменных
в одной программе.
Даны переменные:
small := [2]int{1, 2}
wide := [4]int{1, 2, 3, 4}
Скажите, соберется ли программа, если после
них написать small = wide.
Дан следующий массив:
row := [3]int{10, 20, 30}
Выведите row и скажите, какая длина
зашита в тип row.