【发布时间】:2021-05-22 19:54:47
【问题描述】:
当我尝试用另一个 HashSet<String> 扩展 HashSet<String> 时:
use std::collections::HashSet;
let mut a = HashSet::new();
a.insert("foo".to_owned());
let mut b = HashSet::new();
b.insert("bar".to_owned());
let c = a.extend(&b);
我明白了:
error[E0271]: type mismatch resolving `<&HashSet<String> as IntoIterator>::Item == String`
--> src/main.rs:7:11
|
7 | let c = a.extend(&b);
| ^^^^^^ expected reference, found struct `String`
|
= note: expected reference `&String`
found struct `String`
我该怎么做?
【问题讨论】:
-
对另一个问题的接受答案并没有解决这里的问题,因为它建议
a.extend(&b)对OP 失败。它适用于另一个答案,因为另一个答案使用Copy的集合元素。 (我有点惊讶a.extend(&b) works forCopy 元素,我想知道什么机制允许它。)
标签: string rust hashset ownership