Тип Range
Тип Range в Rust описывает диапазон значений,
который включает нижнюю границу и не включает верхнюю.
Он создаётся с помощью оператора .., например
1..5. Такой диапазон можно использовать в циклах
for, для срезов массивов и векторов, а также для
проверки принадлежности значения с помощью метода
contains. Тип Range является обобщённым
и может хранить значения любого типа, поддерживающего
сравнение и инкремент.
Синтаксис
let range = start..end;
Пример
Давайте создадим диапазон от 1 до 5
и выведем его границы:
fn main()
{
let range = 1..5;
println!("start: {}, end: {}", range.start, range.end);
}
Результат выполнения кода:
start: 1, end: 5
Пример
Давайте переберём все числа из диапазона 1..5
с помощью цикла for:
fn main()
{
for i in 1..5
{
println!("{}", i);
}
}
Результат выполнения кода:
1
2
3
4
Пример
Давайте проверим, содержит ли диапазон 1..5
число 3 и число 5:
fn main()
{
let range = 1..5;
println!("{}", range.contains(&3));
println!("{}", range.contains(&5));
}
Результат выполнения кода:
true
false
Пример
Давайте используем диапазон для получения среза
вектора vec![1, 2, 3, 4, 5]:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let slice = &vec[1..4];
println!("{:?}", slice);
}
Результат выполнения кода:
[2, 3, 4]
Смотрите также
-
тип
RangeInclusive,
который включает и нижнюю, и верхнюю границу -
тип
array,
который поддерживает срезы с помощью диапазонов -
тип
tuple,
который может содержать диапазоны как элементы -
тип
usize,
который часто используется как граница диапазона для индексов