История изменений
Исправление Virtuos86, (текущая версия) :
Ты продолжаешь цепляться к словам. Запись
array: [i32]
именно потому синтаксически некорректна, потому что во время компиляции неизвестна длина такого массива, тоесть неизвестна N. Именно об этом и было написано в сообщении об ошибке компиляции и именно об этом я говорил.
Компилятор умный, но дурак. Потому что по умолчанию полагает, что ему подают корректный код. Поэтому он и пытается найти смысл в том, что ты написал:
19 | fn print_array(array: [i32]) {
| ^^^^^ `[i32]` does not have a constant size known at compile-time
[i32]
- это массив с длиной равной 1, содержащий тип i32
. Если я напишу:
const CONST: [i32] = [i32];
i32
, очевидно, не обладает, то есть не реализует типаж std::marker::Sized
. Поэтому компилятор честно ругается на первую глупость которую обнаружил в твоем коде. Оценить весь ее масштаб он, к сожалению, не в состоянии).Исходная версия Virtuos86, :
Ты продолжаешь цепляться к словам. Запись
array: [i32]
именно потому синтаксически некорректна, потому что во время компиляции неизвестна длина такого массива, тоесть неизвестна N. Именно об этом и было написано в сообщении об ошибке компиляции и именно об этом я говорил.
Компилятор умный, но дурак. Потому что по умолчанию полагает, что ему подают корректный код. Поэтому он и пытается найти смысл в том, что ты написал:
19 | fn print_array(array: [i32]) {
| ^^^^^ `[i32]` does not have a constant size known at compile-time
[i32]
- это массив с длиной равной 1, содержащий тип i32
. Если я напишу:
const CONST: [i32] = [i32];
i32
, очевидно, не обладает, то есть не реализует типаж std::marker::Sized
. Поэтому компилятор честно ругается на первую глупость которую обнаружил в твоем коде. Оценить весь ее масштаб он, к сожалению, не в состоянии).