012 Rust死靈書之分解借用

linghuyichong發表於2021-02-17

本系列錄製的影片主要放在B站上Rust死靈書學習影片

Rust相關的原始碼資料在:github.com/anonymousGiga

Rust的借用檢查非常的簡單,如下:

//以下程式碼可以執行
struct Foo {
    a: i32,
    b: i32,
    c: i32,
}

let mut x = Foo {a: 0, b: 0, c: 0};
let a = &mut x.a;
let b = &mut x.b;
let c = &x.c;
*b += 1;
let c2 = &x.c;
*a += 10;
println!("{} {} {} {}", a, b, c, c2);

但是,如果是陣列或者slice,則對元素mut則會報錯:

let mut x = [1, 2, 3];
let a = &mut x[0];
let b = &mut x[1];
println!("{} {}", a, b);

那麼,如何解決喃?
使用非安全程式碼。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章