rust學習可變與引用過程理解

2021-10-09 00:25:25 字數 774 閱讀 1151

mut可變性

rust學習的第乙個與其他語言不同點便是變數初始化後的使用。

let a = 1;

println!("a:{}",a);

a = 2;

println!("a 2:{}",a);

上段**編譯報錯「cannot assign twice to immutable variable」。說明rust簡單初始化變數是不具有可變性,不可修改只可讀。

正確執行**:

let mut a = 1;

println!("a:{}",a);

a = 2;

println!("a 2:{}",a);

需要修改的變數是需要標記mut關鍵字說明其是可變的。

函式傳值修改

rust 閉包格式

|arg:type| -> ( )
在函式中修改外部值需要在函式定義是宣告可變與引用,傳值同時賦予引用與可變標識。

fn let_a()",a);

let mut small_scope = |b:&mut isize|",b);

};small_scope(&mut a);

println!("a 3:{}",a);

}

這裡類似於一些含有指標語言的使用方式。在rust中叫做借用,因為rust中值的所有權是唯一的,不可以在同一使用範圍有多個變數具有修改某個值得許可權。

Rust 未繫結可變引用 和繫結可變引用的區別

在rust documents api 中 我們經常會看到如下的寫法 繫結可變引用 let f mut string from what something 可變繫結 let mut f string from what something 這兩種語法的區別是很大的。比如在如下 中 fn main ...

rust學習筆記 引用與借用

fn main is s1,len fn calculate length s string usize 上面的 中,calculate length s string 使用了string的引用傳遞引數,而沒有直接轉移值的所有權。在呼叫函式時也需要傳遞引數的引用。這些 代表的就是引用語義,它們允許你...

Rust 引用與借用

我們的上一遍內容的 有這樣乙個問題 我們必須將string返回給呼叫函式,以便在呼叫calculatelen後仍能使用string,因為string被移動到了calculatelen內。下面是如何定義並使用乙個 新的 calculatelen函式,它以乙個物件的引用作為引數而不是獲取值的所有權 fu...