Rust 指定要实现克隆的泛型类型,但类型不为';我没有克隆方法

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<

我有这样的代码,需要在两个单独的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<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。你说得对,“克隆人”的拼写错误是这里的问题。你能把这个写下来作为一个答案,这样它就可以被接受/投票吗?