How to pass Iterator<String> as Iterator<&str>?
问题 fn my_print<'a>(args: impl Iterator<Item=&'a str>) { for arg in args { println!("=> {}", arg); } } fn main() { let vec = vec!["one".to_string(), "two".to_string()]; my_print(vec.into_iter()); // how to pass vec here? } How do I convert Iterator<T> to Iterator<U> and pass it to another function? 回答1: An even better way would be to write the function in a way such as it doesn't actually care: fn my_print<T: AsRef<str>>(args: impl Iterator<Item = T>) { for arg in args { println!("=> {}", arg.as