Rust 指定要实现克隆的泛型类型,但类型不为';我没有克隆方法
我有这样的代码,需要在两个单独的hashmap中插入一些内容。我只想要实现克隆的泛型类型Rust 指定要实现克隆的泛型类型,但类型不为';我没有克隆方法,rust,Rust,我有这样的代码,需要在两个单独的hashmap中插入一些内容。我只想要实现克隆的泛型类型 use std::collections::HashMap; use std::clone::Clone; pub struct Something<A, B> { hm1: HashMap<usize, B>, hm2: HashMap<usize, B>, other: A, } impl<A, B> Something<
use std::collections::HashMap;
use std::clone::Clone;
pub struct Something<A, B> {
hm1: HashMap<usize, B>,
hm2: HashMap<usize, B>,
other: A,
}
impl<A, B> Something<A, B>
where B: Clone
{
fn add_to_both_hm(&mut self, x: usize, y: usize, weight: B) {
self.hm1.insert(x, weight.Clone());
self.hm2.insert(y, weight);
}
}
使用std::collections::HashMap;
使用std::clone::clone;
pub struct Something.两个可能的答案:
该方法称为clone
,小写为c
。Rust是一种区分大小写的语言
克隆
不是一种方法,而是一种特质。trait的名称与它可能定义的任何方法的名称没有任何关系。对于Clone
,它定义了一个实现类型的方法Clone
两种情况下的解决方案都很简单:改为编写weight.clone()
。两种可能的答案:
该方法称为clone
,小写为c
。Rust是一种区分大小写的语言
克隆
不是一种方法,而是一种特质。trait的名称与它可能定义的任何方法的名称没有任何关系。对于Clone
,它定义了一个实现类型的方法Clone
两种情况下的解决方案都很简单:改为编写weight.clone()
。方法是clone
。Rust是一种区分大小写的语言。编辑:我刚刚意识到你的问题可能是:Clone
不是一个方法,它是一个特征,特征的名称与它定义的方法的名称没有任何关系。@DK。你说得对,“克隆人”的拼写错误是这里的问题。你能把这个写下来作为一个答案,这样它就可以被接受/投票吗?方法是clone
。Rust是一种区分大小写的语言。编辑:我刚刚意识到你的问题可能是:Clone
不是一个方法,它是一个特征,特征的名称与它定义的方法的名称没有任何关系。@DK。你说得对,“克隆人”的拼写错误是这里的问题。你能把这个写下来作为一个答案,这样它就可以被接受/投票吗?