特性 `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
实现
我需要解释这个错误以及如何修复它。我循环遍历文本中的每个字符,并将尚未在哈希图中的字符插入到哈希图中。但我一直收到上述错误。
chars
是 Iterator
,其 Item = char
,因此您的 HashMap<&str, u32>
与其不兼容。
&str
是一个字符串切片(本质上是一个字符序列),而 char
是单个字符。
你必须决定:
-
map
真的应该从 &str
映射到 u32
吗?或者可能来自 char
?或者可能来自 &char
?
- 如果选择
&str
,则必须将 chars
的元素转换为 &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
我需要解释这个错误以及如何修复它。我循环遍历文本中的每个字符,并将尚未在哈希图中的字符插入到哈希图中。但我一直收到上述错误。
chars
是 Iterator
,其 Item = char
,因此您的 HashMap<&str, u32>
与其不兼容。
&str
是一个字符串切片(本质上是一个字符序列),而 char
是单个字符。
你必须决定:
-
map
真的应该从&str
映射到u32
吗?或者可能来自char
?或者可能来自&char
? - 如果选择
&str
,则必须将chars
的元素转换为&str
。