Accessing the last element of a vector
-
len
-
last
-
TODO
-
Unlike Python and Perl, rust won’t let us use a negative index in a vector so we won’t be able to access the last element using
vector_name[-1] -
We can either use
vector_name.len()-1or -
We can use
vector_name.last(), but in this case we get anOptionthat can beNoneas well. -
If we access a seemingly arbitrary element that we calculated using
vector_name.len()-1then either we get back a value or Rust will panic if we gave an index too big. -
On the other hand using
lastwe are more protected. In that case we either get a value orNoneif the vector was empty.
fn main() {
let planets: Vec<&str> = vec!["Mercury", "Venus", "Earth"];
println!("{}", planets.len());
println!("{}", planets[planets.len() - 1]);
// println!("{}", planets[ 5 ]); // thread 'main' panicked at 'index out of bounds: the len is 3 but the index is 5'
println!("{}", planets.last().unwrap());
let planets: Vec<&str> = vec![];
//println!("{}", planets[ planets.len()-1 ]); // thread 'main' panicked at 'attempt to subtract with overflow'
println!("{:?}", planets.last()); // None
}
3
Earth
Earth
None