Ответ 1
К сожалению, Rust пока не поддерживает целые числа как общие параметры. Поэтому нелегко реализовать черту (например, Debug
) для каждого массива [T; N]
[T; N]
. В настоящее время стандартная библиотека использует макрос, чтобы легко реализовать черту на всю длину до 32.
Чтобы вывести массив, вы можете легко преобразовать его в срез (&[T]
) следующим образом:
let a = [0; 33];
println!("{:?}", &a[..]);
Кстати: обычно вы можете получить срез из массива, просто добавив префикс &
, но аргументы println
работают немного по-другому, поэтому вам нужно добавить индекс полного диапазона [..]
.
Ситуация, вероятно, улучшится в будущем. RFC 2000: Const Generics уже принят и в основном реализован в компиляторе. Это позволило бы использовать блоки impl
по всей длине массива. Вы можете отслеживать статус внедрения и стабилизации по соответствующей проблеме отслеживания.