Как установить длину массива Rust динамически?

Я хочу создать массив следующим образом:

let arr = [0; length];

Где длина - usize. Но я получаю эту ошибку

E0307
The length of an array is part of its type. For this reason, this length 
must be a compile-time constant.

Можно ли создать массив с динамической длиной? Я хочу массив, а не Vec.

Ответ 1

Можно ли создать массив с динамической длиной?

Нет. По определению, массивы имеют длину, определенную во время компиляции. Переменная (потому что она может варьироваться) не известна во время компиляции. Компилятор не знает, сколько места нужно выделить в стеке, чтобы обеспечить хранилище для массива.

Вам нужно будет использовать Vec:

let arr = vec![0; length];

Смотрите также: