Tranches de rouille

Tranches de rouille
Une tranche est un type de données qui vous permet de référencer une séquence adjacente d'éléments dans la collecte de rouille. Puisqu'une tranche est une référence, elle n'a pas de propriétaire. Il fait référence à un pointeur vers une mémoire «tranche».

Dans ce tutoriel, nous apprendrons comment nous pouvons accéder aux tranches de collection telles que les vecteurs, les tableaux, les chaînes, etc.

Rust Créer une tranche

Comme indiqué dans la section ci-dessus, une tranche est un type emprunté qui contient le pointeur vers l'adresse des données.

Par conséquent, nous créons une tranche en prenant une partie du conteneur de données existant. Nous ne pouvons pas créer une tranche comme nous le ferions une variable normale.

Pour créer une tranche, nous spécifions l'indice de démarrage et de fin à l'intérieur d'une paire de crochets. L'indice de démarrage et de fin est séparé en utilisant une notation à double point.

Nous pouvons exprimer cette syntaxe comme indiqué:

Soit quelque_string = "valeur";
& some_string [start_index… end_index];

Notez que nous pouvons découper n'importe quelle collection valide en rouille. Prenez l'exemple ci-dessous qui crée une tranche à partir d'un type de chaîne.

fn main ()
Laissez url = "Linuxhint.com ";
Soit Slice = & url [0… 9];
println!("", tranche);

Le code ci-dessus crée une tranche d'une chaîne à partir de l'index 0 à l'index 9. Notez que le dernier est exclusif. Cela signifie que la tranche contiendra la valeur de l'indice de début à fin - 1.

Remarquez l'opérateur? En effet, la tranche est une référence aux données réelles de la collection spécifiée.

Le code ci-dessus doit retourner:

Rust nous permet également de sauter l'indice de départ et de fin. Par exemple, si nous commençons la tranche à partir de l'index 0, nous pouvons omettre le 0 et définir l'index de fin. Un exemple est comme indiqué:

fn main ()
Laissez url = "Linuxhint.com ";
Soit Slice = & url [… 9];
println!("", tranche);

Notez que l'exemple ci-dessus définit la plage d'index comme… 9. Cela signifie commencer de l'index 0 à l'index 9.

Nous pouvons faire de même pour la fin de l'index. Considérez l'exemple de code ci-dessous:

fn main ()
Laissez url = "Linuxhint.com ";
Soit Slice = & URL [9…];
println!("", tranche);

Cela devrait revenir:

En dehors d'une chaîne, vous pouvez avoir une tranche d'un tableau. Un exemple est comme indiqué ci-dessous:

fn main ()
Soit Arr = [100,200,300,400,500];
Soit Slice = & arr [1… 3];
println!(":?", tranche);

Cela devrait renvoyer une tranche de tableau avec les valeurs dans la plage spécifiée.

[200, 300]

Nous pouvons trancher un vecteur comme indiqué:

fn main ()
Soit Vec = Vec!["a", "b", "c", "d", "e"];
Soit Slice = & Vec [1… = 4];
println!(":?", tranche);

Tranche mutable

Nous pouvons également créer des tranches mutables en définissant le mot clé Mut dans une tranche. Un exemple est comme indiqué:

fn main ()
Soit Arr = [100,200,300,400,500];
Laissez mut trancher = & arr [1… 3];
println!(":?", tranche);

Vous pouvez muter le tableau retourné comme vous le voyez bien.

Conclusion

Ce guide couvre les principes fondamentaux du travail avec des tranches dans le langage de la rouille. Vous pouvez vérifier la documentation pour explorer plus loin.

Merci d'avoir lu!