syntax rust operators

syntax - ¿Qué es el operador..=(punto punto igual) en Rust?



operators (1)

Este es el operador de rango inclusivo .

El rango x..=y contiene todos los valores >= x y <= y , es decir, "desde x hasta e incluyendo y ".

Esto contrasta con el operador de rango no inclusivo x..y , que no incluye a sí mismo.

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]

Expresiones de coincidencia

También puede usar start..=end como un patrón en una expresión de coincidencia para hacer coincidir cualquier valor en el rango (inclusive).

match fahrenheit_temperature { 70..=89 => println!("What lovely weather!"), _ => println!("Ugh, I''m staying in."), }

El uso de un start..end exclusivo de rango ... start..end como patrón es una característica experimental. Ver el número 37854 .

Historia

Los rangos inclusivos solían ser una característica experimental de solo noche, y se escribieron ... antes.

A partir de Rust 1.26, es oficialmente parte del lenguaje y está escrito ..= .

(Antes de que existieran los rangos inclusivos, en realidad no se podía crear, digamos, un rango de valores de bytes que incluyan 255u8 . Debido a que sería 0..256 , ¡y 256 está fuera del rango u8 ! Este es el problema # 23635 ).

Ver también

Vi este operador ..= en algún código Rust:

for s in 2..=9 { // some code here }

¿Qué es?