Last active
November 22, 2020 23:39
-
-
Save patshaughnessy/3252e2e718445d991499e5cd08e1949c to your computer and use it in GitHub Desktop.
Rust Vec<String> find example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fn main() { | |
let needle = "list".to_string(); | |
let haystack = ["some".to_string(), "long".to_string(), "list".to_string(), "of".to_string(), "strings".to_string()].to_vec(); | |
if let Some(str) = haystack.iter().find(|&s| *s == needle) { | |
println!("{}", needle); | |
} else { | |
println!("Nothing there..."); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks all of you for the ideas!
Yup as I learned on StackOverflow, using
contains
seems a lot simpler and cleaner in this example. Usinginto_iter
will also work, but isn't what I need in my app because I don't want to move the data out.And thanks for the type inference tip - yes much cleaner.
The deeper issue for me is that Rust's
&
and&&
syntax can be very confusing, especially with iterators and closures. Will just take some getting used to I suppose :)