rust中交换两个值

1、创建新绑定

fn main(){
    let (a,b)=(1,1);
    let (a,b)=(b,a+b);
}

(使用限制,每次都是新绑定)

2、修改绑定内容-临时变量

fn main(){
    let (mut a,mut b)=(1,1);
    let tmp=a+b;
    a=b;
    b=tmp;
}

3、修改绑定内容-swap

fn main(){
    let (mut a,mut b)=(1,1);
    std::mem::swap(&mut a,&mut b);
}

==============

ps:(fibonacci可以不用交换,直接用替代元组)

fn fib(n:u64)->u64{
    if n<2{
        return n;
    }
    let mut vv=(1,1);
    for _ in 2..n{
        vv = (vv.1,vv.0+vv.1);
    }
    vv.1
}

 

posted @ 2020-04-07 10:18  gelare  阅读(1625)  评论(0)    收藏  举报