Длина массива в типе в Rust
Тип массива включает длину. Запись из трех
чисел имеет тип [i32; 3], а из двух -
[i32; 2]. Это разные типы, хотя
элементы в обоих случаях целые i32.
Переменная, созданная для трех ячеек, не принимает массив из двух и наоборот. Такой перенос не собирается:
let arr1 = [1, 2, 3];
let arr2 = [4, 5];
arr1 = arr2;
Компилятор сравнивает типы целиком. Длина
3 и длина 2 дают несовместимые
типы, поэтому присваивание отклоняется еще
на этапе сборки. Отдельно объявить имя
для массива другой длины без нового
let тоже нельзя:
let data = [10, 20, 30];
data = [10, 20];
Дан следующий код:
let a = [1, 2];
let b = [3, 4, 5];
a = b;
Скажите, соберется ли программа.
Даны переменные:
let row = [7, 8, 9];
Скажите, можно ли записать в row
массив из двух чисел без нового объявления.
Назовите тип массива из двух чисел 5
и 6 в виде [i32; N], подставив
вместо N нужное число.