如果我想将类似于“aeiou”的
我尝试过
我尝试过
暂时地,我只是打出了
为了上下文,在每个值上循环并将其传递到类似于
以下是我的整体代码。也许我在别的地方走错了。
如果我能让
&str
转换为大致等同于["a", "e", "i", "o", "u"].iter()
的迭代器,最常见的方法是什么?我尝试过
"aeiou".split("")
,这对我来说似乎很常见,但我得到了空的&str
在开头和结尾。我尝试过
"aeiou".chars()
,但从那里开始转换char
到&str
变得非常丑陋和笨拙。暂时地,我只是打出了
["a", "e", "i", "o", "u"].iter()
,但一定有更简单、更常见的方法。为了上下文,在每个值上循环并将其传递到类似于
string.matches(vowel).count()
的东西中。以下是我的整体代码。也许我在别的地方走错了。
fn string_list_item_count<'a, I>(string: &str, list: I) -> usize
where
I: IntoIterator<Item = &'a str>,
{
let mut num_instances = 0;
for item in list {
num_instances += string.matches(item).count();
}
num_instances
}
// snip
string_list_item_count(string, vec!["a", "e", "i", "o", "u"])
// snip
如果我能让
string_list_item_count
接受迭代器中实现了std::str::pattern::Pattern
特性的类型,那么我认为该函数将可以接受&str
和char
类型的迭代器,但是Pattern
特性是一个夜间不稳定的API,我正在尝试避免使用它们。