Ownership et emprunt
Rust Slices: &str and &[T]
Borrow part of a string or array without copying a single byte.
Ce que vous allez apprendre
- String slices
- Array slices
- Returning a slice
&numbers[1..4]
100
201
302
403
504
A view of part of a collection
A slice is a reference to a continuous part of a collection. &text[0..5] borrows the first five bytes of a string, and &numbers[1..4] borrows three items of an array.
first_word returns a slice of the text it was given, so nothing is copied. find returns the position of the first space, or None when there is none. A slice of an array works the same way and has methods such as iter and len.
Points clés
- &
text[0..5]borrows the first five bytes. - A slice does not copy the data.
- &
numbers[1..4]has three items.
Exemple Rust exécutable
main.rs
fn first_word(text: &str) -> &str {
match text.find(' ') {
Some(index) => &text[..index],
None => text,
}
}
fn main() {
let sentence = String::from("ownership makes Rust safe");
println!("{}", first_word(&sentence));
println!("{}", &sentence[10..15]);
let numbers = [10, 20, 30, 40, 50];
let middle = &numbers[1..4];
println!("{:?} sum = {}", middle, middle.iter().sum::<i32>());
}
ownership
makes
[20, 30, 40] sum = 90S'entraîner
Ouvrez l'exemple dans le compilateur en ligne, modifiez une valeur ou ajoutez une ligne, et devinez la sortie avant de l'exécuter. Cassez ensuite le code exprès et lisez le message du compilateur.
Leçon terminée ?
Marquez-la comme apprise pour suivre votre progression.
Votre progression est enregistrée dans ce navigateur Connectez-vous pour la garder sur tous vos appareils.
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
- Mot le plus long Trouvez le mot le plus long dans une phrase. Facile
- Every Other Character Keep the characters at even positions. Facile