I need to find an index of an element in a vector of strings. This is what I got so far:
fn main() {
let test: Vec = vec![
\"one\".to_s
TLDR Use an iterator with the position
method, the Rust docs shows a good example.
No, it's because indices are usize
, not i32
. In fact, i32
is completely inappropriate for this purpose; it may not be large enough, and there's no reason for it to be signed. Just use usize
.
Some other notes: calling to_string()
is not free, and you don't need it for the comparison; you can compare string slices just fine!
Also, if you really want to turn a usize
into an i32
, you can do that with a cast: x as i32
, though this will not produce an error on over- or under-flow (i.e. the result may be negative).
All that said, as noted in Mathieu David's answer, there's a position method on iterators that does what you want.