Это оператор диапазона включительно .
Диапазон x..=y
содержит все значения >= x
и <= y
, то есть «от x
до и , включая y
”.
Это в отличие от не включающего оператора диапазона x..y
, который не включает y
fn main() {
println!("{:?}", (10..20) .collect::<Vec<_>>());
println!("{:?}", (10..=20).collect::<Vec<_>>());
}
// Output:
//
// [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
// [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
Соответствие выражений
Вы также можете использовать start..=end
в качестве шаблона в выражении match
для соответствия любому значению в (включительно) диапазоне.
match fahrenheit_temperature {
70..=89 => println!("What lovely weather!"),
_ => println!("Ugh, I'm staying in."),
}
(Использование исключительного диапазона start..end
в качестве шаблона является экспериментальной функцией .)
История
Использованы включенные диапазоныбыть экспериментальной функцией, работающей только на ночь, и была написана ...
ранее.
Начиная с Rust 1.26, она официально является частью языка и написана ..=
.
(до включениядиапазоны существовали, вы фактически не могли создать, скажем, диапазон значений байтов, включая 255u8
. Потому что это было бы 0..256
, а 256
выходит за пределы диапазона u8
! This is issue # 23635 .)
См. также