在 Rust 中使用 & 符號

Muhammad Adil 2022年6月15日
在 Rust 中使用 & 符號

Rust 是一種強調安全性和速度的系統程式語言。編譯器會捕獲程式碼中的常見錯誤,這意味著除錯時間更短,安全問題也更少。

除了這些特性之外,Rust 還具有一個 & 符號 (&) 特性,它可以使任何變數在程式碼中的任何位置可變或不可變。

在 Rust 中使用 & 符號 (&) 建立可變或不可變變數

當你使用 & 符號 (&) 時,它會轉換為引用。這裡的關鍵思想是,如果我們將引用變數作為引數傳送給函式,則該函式將採用引用引數。

如果不使用 & 符號 (&),你會注意到編譯時錯誤。

可變性的概念

在 Rust 中,& 符號 (&) 表示不可變引用,可變 & 符號 (&mut) 表示可變引用。

在使用引用時,理解 Rust 中的可變性概念非常重要。Rust 的許多安全保證都是基於可變引用和不可變引用之間的這種區別。

可以改變和重新分配可變的&符號,而無需使用指標或引用。這提供了一種更有效的方式來處理突變,因為它消除了對許多顯式複製和移動的需要。

讓我們討論一個例子。

fn main() {
    let mut x = 6;
    {
        let y = &mut x;
        *y -=2;
    }
    println!("A number is {}", x);
}

輸出:

A number is 4

如果我們在上面的例子中沒有應用 mut,下面的行將無法執行。如果我們在開始時沒有使用 mut 關鍵字來構造變數,程式會丟擲異常。

我們試圖從不可變變數中獲取可變引用。

還有一個重要的因素需要考慮:你只能有一個可變的參考。因此,你無法構造大量可變引用。

點選這裡檢視上述程式碼的演示。

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook