Ownership e borrowing
Rust Slices: &str and &[T]
Borrow part of a string or array without copying a single byte.
Cosa imparerai
- 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.
Punti chiave
- &
text[0..5]borrows the first five bytes. - A slice does not copy the data.
- &
numbers[1..4]has three items.
Esempio Rust eseguibile
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 = 90Esercitati
Apri l'esempio nel compilatore online, cambia un valore o aggiungi una riga e prova a prevedere l'output prima di eseguirlo. Poi rompi il codice di proposito e leggi il messaggio del compilatore.
Hai finito questa lezione?
Segnala come imparata per tenere traccia dei tuoi progressi.
I tuoi progressi sono salvati in questo browser Accedi per conservarli su ogni dispositivo.
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
- Parola più lunga Trova la parola più lunga in una frase. Facile
- Every Other Character Keep the characters at even positions. Facile