“std::borrow::Borrow<char>”特性没有被实现在“&str”类型上。

3
let mut map: HashMap<&str, u32> = HashMap::new();

for (i, c) in text.chars().enumerate() {
    if map.contains_key(&c) {
    // Do something
    }
}

std::borrow::Borrow<char>特质未为&str实现。

我需要解释这个错误以及如何修复它。我正在遍历文本中的每个字符,并将那些尚未存在于哈希映射中的字符插入到哈希映射中。但是我一直收到上述错误。

1个回答

2

chars是一个Iterator,它的Item = char,因此你的HashMap<&str, u32>与之不兼容。

&str是一个字符串片段(实际上是字符序列),而char是单个字符。

你必须决定:

  • map是否真的应该从&str映射到u32?或者可能是从char?或者可能是从&char
  • 如果你选择&str,你必须将chars的元素转换为&str

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接