Последовательность Range в Rust

В языке программирования Rust последовательности обычно применяются в целях получения какой-либо части набора элементов, к примеру, строки либо массива, хотя, конечно же, это не единственное применение последовательностей. В этой заметке мы рассмотрим тип Range -- последовательность, представляющую определенный диапазон элементов.

При создании последовательности используется оператор .. (две точки). Общая форма выглядит следующим образом:

Слева от .. указывают начальное значение диапазона, тогда как справа -- конечное значение. Также важно отметить, что конечное значение в диапазон не включается.

Кроме того, когда начальное значение больше, чем конечное, последовательность будет пустой.

Рассмотрим пример:

Из примера следует, что формируется последовательность чисел 1-9, причем 9 в эту последовательность не включается. Перебор последовательности можно осуществить, используя цикл for.

Идем дальше: хоть мы и можем задействовать оператор .. в целях создания последовательности, в реальности эта последовательность, по сути, представляет структуру std::ops::Range, имеющую 2 поля: начальное значение start и конечное значение end. Исходя из сказанного, предыдущий код можно переписать иначе:

Чтобы определить последовательность, также можно применить модификацию оператора - ..=, что позволит включить в диапазон конечное значение:

Применение последовательностей

На практике последовательности весьма удобно использовать, если надо взять какую-либо часть массива, допустим:

Впрочем, более подробно про применение последовательностей в целях извлечения поднабора смотрите в статье, посвященной типу Slice.

По материалам https://metanit.com/.