码迷,mamicode.com
首页 > 其他好文 > 详细

Rust Notes - 01

时间:2015-06-12 00:51:53      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

普通的数组数据交换,

    let mut val = [1,2,3];

    let t = val[0];
    val[0] = val[1];
    val[1] = t;

it works...下面的也work:

    let mut val = ["1","2","3"];

    let t = val[0];
    val[0] = val[1];
    val[1] = t;

但,

   let mut val = ["1".to_string(),"2".to_string(),"3".to_string()];
   
    let t = val[0];
    val[0] = val[1];
    val[1] = t;

编译出错:

<anon>:32:13: 32:19 error: cannot move out of type `[collections::string::String; 3]`, a non-copy fixed-size array
<anon>:32     let t = val[0];
                      ^~~~~~
<anon>:32:9: 32:10 note: attempting to move value to here
<anon>:32     let t = val[0];
                  ^
<anon>:32:9: 32:10 help: to prevent the move, use `ref t` or `ref mut t` to capture value by reference
<anon>:33:14: 33:20 error: cannot move out of type `[collections::string::String; 3]`, a non-copy fixed-size array
<anon>:33     val[0] = val[1];
                       ^~~~~~
error: aborting due to 2 previous errors

  正确的交换方式是,


    val.swap(0,1);
   

Rust Notes - 01

标签:

原文地址:http://www.cnblogs.com/rxlinq/p/4570538.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!