Rodajas de óxido

Rodajas de óxido
Una porción es un tipo de datos que le permite hacer referencia a una secuencia contigua de elementos en la recopilación de óxido. Dado que una porción es una referencia, no tiene un propietario. Hace referencia a un puntero a una memoria "porta".

En este tutorial, aprenderemos cómo podemos acceder a rodajas de colección, como vectores, matrices, cuerdas, etc.

Óxido crea rebanada

Como se indica en la sección anterior, una porción es un tipo prestado que contiene el puntero a la dirección de los datos.

Por lo tanto, creamos una porción tomando una parte del contenedor de datos existente. No podemos crear una porción como lo haríamos una variable normal.

Para crear una porción, especificamos el índice de inicio y finalización dentro de un par de soportes cuadrados. El índice de inicio y finalización se separa usando notación de doble punto.

Podemos expresar esta sintaxis como se muestra:

Dejar some_string = "valor";
& some_string [start_index ... end_index];

Tenga en cuenta que podemos cortar cualquier colección válida en óxido. Tome el ejemplo a continuación que crea una porción a partir de un tipo de cadena.

fn main ()
Deje url = "Linuxhint.com ";
Dejar slice = & url [0 ... 9];
println!("", rebanada);

El código anterior crea una porción de una cadena a partir del índice 0 al índice 9. Tenga en cuenta que el último es exclusivo. Esto significa que la porción contendrá el valor del índice de inicio a final - 1.

Tenga en cuenta el y operador? Esto se debe a que el corte es una referencia a los datos reales en la colección especificada.

El código anterior debería devolver:

El óxido también nos permite omitir el índice de inicio y finalización. Por ejemplo, si estamos iniciando el corte del índice 0, podemos omitir el 0 y simplemente establecer el índice final. Un ejemplo es como se muestra:

fn main ()
Deje url = "Linuxhint.com ";
Dejar slice = & url [... 9];
println!("", rebanada);

Tenga en cuenta que el ejemplo anterior establece el rango de índice como ... 9. Esto significa comenzar desde el índice 0 al índice 9.

Podemos hacer lo mismo para finalizar el índice. Considere el código de ejemplo que se muestra a continuación:

fn main ()
Deje url = "Linuxhint.com ";
Dejar slice = & url [9 ...];
println!("", rebanada);

Esto debería volver:

Aparte de una cuerda, puede tener una porción de una matriz. Un ejemplo es como se muestra a continuación:

fn main ()
Let ARR = [100,200,300,400,500];
Dejar slice = & arr [1 ... 3];
println!(":?", rebanada);

Esto debería devolver una porción de matriz con los valores en el rango especificado.

[200, 300]

Podemos cortar un vector como se muestra:

fn main ()
dejar vec = vec!["a B C D e"];
Dejar slice = & vec [1 ... = 4];
println!(":?", rebanada);

Rebanada mutable

También podemos crear rebanadas mutables configurando la palabra clave Mut en una porción. Un ejemplo es como se muestra:

fn main ()
Let ARR = [100,200,300,400,500];
Deje Mut Slice = & arr [1 ... 3];
println!(":?", rebanada);

Puedes mutar la matriz devuelta como mejor le.

Conclusión

Esta guía cubre los fundamentos de trabajar con rodajas en el lenguaje de óxido. Puede consultar la documentación para explorar más.

Gracias por leer!