Comment puis-je obtenir une tranche d'un Vector<T> dans la Rouille? Je ne peux pas trouver dans la documentation de Vec<T> comment récupérer une tranche à partir d'une plage spécifiée. Est là quelque chose comme cela dans la bibliothèque standard: let a = vec![1, 2, 3, 4]; let suba = a.subvector(0, 2); //Contains [1, 2]; OriginalL'auteur yageek | 2016-09-30 rustvector 37 La documentation pour Vec couvre ceci la section intitulée "découpage". Vous pouvez créer un slice d'un Vec ou array par l'indexation avec un (ou RangeFrom, RangeTo, RangeFull), par exemple: fn main() { let a = vec![1, 2, 3, 4, 5]; //With a start and an end println!("{:?}", &a[1..4]); //With just a start println!("{:?}", &a[2..]); //With just an end println!("{:?}", &a[..3]); //All elements println!("{:?}", &a[..]); } OriginalL'auteur Brian Campbell 3 Si vous souhaitez convertir la totalité de la Vec à une tranche, vous pouvez utiliser deref coercition: fn main() { let a = vec![1, 2, 3, 4, 5]; let b: &[i32] = &a; println!("{:?}", b); } Cette contrainte est appliquée automatiquement lors de l'appel d'une fonction: fn print_it(b: &[i32]) { println!("{:?}", b); } fn main() { let a = vec![1, 2, 3, 4, 5]; print_it(&a); } Vous pouvez également appeler Vec::as_slice, mais c'est un peu moins commun: fn main() { let a = vec![1, 2, 3, 4, 5]; let b = a.as_slice(); println!("{:?}", b); } Voir aussi: Pourquoi est-il déconseillé d'accepter une référence à une Chaîne de caractères (&Chaine), Vec (&Vec) ou Zone (&Box) comme un argument de fonction? OriginalL'auteur Shepmaster Vous devez vous connecter pour publier un commentaire.
La documentation pour
Vec
couvre ceci la section intitulée "découpage".Vous pouvez créer un
slice
d'unVec
ouarray
par l'indexation avec un(ou
RangeFrom
,RangeTo
,RangeFull
), par exemple:OriginalL'auteur Brian Campbell
Si vous souhaitez convertir la totalité de la
Vec
à une tranche, vous pouvez utiliser deref coercition:Cette contrainte est appliquée automatiquement lors de l'appel d'une fonction:
Vous pouvez également appeler
Vec::as_slice
, mais c'est un peu moins commun:Voir aussi:
OriginalL'auteur Shepmaster