[T]标准库是否提供了一种使用相同类型的另一个切片作为分隔符来分割切片的方法?该库的文档列出了对单元素分隔符而不是切片进行操作的方法。
例如:使用5 个u64整数作为分隔符分割的切片将产生两个切片和。[1u64, 4u64, 0u64, 0u64, 8u64][0u64, 0u64][1u64, 4u64][8u64]
如果我想点&str赞"aeiou"并将其转换为大致相当于 的迭代器["a", "e", "i", "o", "u"].iter(),那么最惯用的方法是什么?
我试过做"aeiou".split("")这对我来说似乎是惯用的,但我&str在开始和结束时都得到了空的s。
我试过这样做,"aeiou".chars()但从那里试图将chars 变成&strs变得非常丑陋和笨拙。
目前,我只是输入了["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
Run Code Online (Sandbox Code Playgroud)
如果我可以在迭代器中string_list_item_count接受 …