С точки зрения производительности, нет никакой разницы, поскольку они используют точно такую же реализацию Iterator
. В этом можно убедиться, посмотрев реализации IntoIterator
; в частности, на IntoIter
типах.
Причина, по которой вы не можете использовать &array
для некоторых размеров, заключается в том, что в Rust нет параметров универсальных значений для обобщенных элементов. Это означает, что стандартная библиотека не может выразить обобщенные значения, параметризованные по какому-либо значению. Как, скажем, длина массива. Это означает, что вам нужна отдельная реализация IntoIterator
для каждого возможного размера массива . Это, очевидно, невозможно, поэтому стандартная библиотека реализует его только для нескольких размеров; в частности, для массивов размером до 32 элементов.