在rust中,可以借助标准库的基础的Clone实现复制功能,也可以不借助该功能,自己定义一个Clone 功能,下面是代码。
一、自定义Clone 功能
#[derive(Debug)]
struct Mynum{
n:i32,
}
#[derive(Debug)]
struct Myc;
impl Clone for Myc{
fn clone(&self) -> Self{
Myc
}
}
impl Clone for Mynum{
fn clone(&self) ->Self{
Mynum{
n:self.n.clone()
}
}
}
fn main(){
let x = Myc;
let b = x.clone();
println!("{:?}",b);
let n1= Mynum{n:123};
let n2 = n1.clone();
println!("{:?}-{:?}",n1,n2);
}
二、使用标准库的clone() 功能
#[derive(Debug,Clone)]
struct Mynum{
n:i32,
}
#[derive(Debug,Clone)]
struct Myc;
fn main(){
let x = Myc;
let b = x.clone();
println!("{:?}",b);
let n1= Mynum{n:123};
let n2 = n1.clone();
println!("{:?}-{:?}",n1,n2);
}