特性 `std::borrow::Borrow<char>` 没有为 `&str` 实现

the trait `std::borrow::Borrow<char>` is not implemented for `&str`

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

实现

我需要解释这个错误以及如何修复它。我循环遍历文本中的每个字符,并将尚未在哈希图中的字符插入到哈希图中。但我一直收到上述错误。

charsIterator,其 Item = char,因此您的 HashMap<&str, u32> 与其不兼容。

&str 是一个字符串切片(本质上是一个字符序列),而 char 是单个字符。

你必须决定:

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