国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Rust 筆記:Rust 語言中的常量與變量

這篇具有很好參考價值的文章主要介紹了Rust 筆記:Rust 語言中的常量與變量。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Rust 筆記
Rust 語言中的常量與變量

作者李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
郵箱 :291148484@163.com
本文地址:https://blog.csdn.net/qq_28550263/article/details/130875912


【介紹】:本文介紹 Rust 語言中的常量與變量。

上一節(jié):《 上一節(jié)標題 | 下一節(jié):《 Rust 語言中的的原始類型(Primitive Types)


1. 概述:常量與變量的概念

這一小節(jié)主要是為方便剛剛學(xué)編程的小白讀者準備的。在計算機編程中常量和變量都是用于存儲數(shù)據(jù)的標識符,它們用于表示在程序執(zhí)行過程中可能發(fā)生變化的值。常量和變量的區(qū)別在于它們的賦值后的行為:即是否可以再改變。

1.1 常量 的概念

常量 是一個在程序執(zhí)行期間值不會改變的標識符。常量通常用于表示在程序中固定不變的值,如數(shù)學(xué)常數(shù)、配置參數(shù)等。一旦常量被賦值,就無法再修改其值。

1.2 變量 的概念

變量 是一個在程序執(zhí)行期間其值可以改變的標識符。變量通常用于表示在程序中需要存儲、修改或計算的值。變量的值可以在程序的不同位置進行修改,允許根據(jù)需要動態(tài)調(diào)整存儲的數(shù)據(jù)。

2. Rust 中的常量

2.1 定義常量

在 Rust 中,常量使用 const 關(guān)鍵字進行定義。常量的值在編譯時就確定,并且不允許在程序執(zhí)行期間更改。在 Rust 中定義的常量在 整個程序的作用域內(nèi) 都有效。例如:

const MAX_COUNT: u32 = 100_000;

上面的這個常量的命名是遵循 Rust 語言常量命名規(guī)范的命名方式。
Rust 語言中,常量的命名規(guī)范通常使用全大寫字母,單詞之間使用 下劃線_) 進行分隔,這與 Python 語言中命名一個不在代碼中改變的量的規(guī)范很像。不過 Python 中并沒有真正意義上的常量,這個“不會改變”只存在與編程者頭腦的契約中,而如果對 Rsut 中的常量進行修改,是回導(dǎo)致異常的。

2.2 Rsut 中常量的若干規(guī)則

常量的 類型 必須在 聲明 時就明確指定,并且常量的值必須是一個編譯時常量(在編譯時可以確定其值)。這意味著不能將函數(shù)調(diào)用的結(jié)果或運行時計算的值賦給常量

常量在 Rust 中的使用方式與變量類似,可以在表達式中使用常量,傳遞給函數(shù),作為模式匹配的一部分等。

3. Rust 中的變量

3.1 定義變量

在 Rust 中,變量使用 let 關(guān)鍵字進行定義。變量的值可以根據(jù)需要在程序執(zhí)行過程中進行修改。例如:

fn main() {
    let name = "Jack Lee";
    let age: u32 = 27;

    println!("姓名: {}", name);
    println!("年齡: {}", age);
}

輸出結(jié)果為:

姓名: Jack Lee
年齡: 27

3.2 “不可變”的變量

3.2.1 違背常理的變量

你覺得你定義的變量可以修改嗎?

看到本小節(jié)以這樣的方式開頭可能回讓你有點以外——嗯,甚至有點 不安 和 疑惑:

既然是變量,那還問什么是否可以修改嗎。想到這里,你不妨試試修改并運行一下你的代碼:

fn main() {
    let name = "Jack Lee";
    let age: u32 = 27;

    age = age-1;

    println!("姓名: {}", name);
    println!("年齡: {}", age);
}

似乎有情況發(fā)生了,你看到的是下面這樣的報錯:

error[E0384]: cannot assign twice to immutable variable `age`
 --> src\main.rs:5:5
  |
3 |     let age: u32 = 27;
  |         ---
  |         |
  |         first assignment to `age`
  |         help: consider making this binding mutable: `mut age`
4 |
5 |     age = age-1;
  |     ^^^^^^^^^^^ cannot assign twice to immutable variable

For more information about this error, try `rustc --explain E0384`.
error: could not compile `use-reg` due to previous error

依據(jù)提示你可以查詢一下 E0384:

rustc --explain E0384

你會看到:

An immutable variable was reassigned.

Erroneous code example:

fn main() {
    let x = 3;
    x = 5; // error, reassignment of immutable variable
}

By default, variables in Rust are immutable. To fix this error, add the keyword
`mut` after the keyword `let` when declaring the variable. For example:

fn main() {
    let mut x = 3;
    x = 5;
}

上面清楚地告訴你:

一個不可變變量被重新分配!
(An immutable variable was reassigned.)

3.2.2 不可變背后的考慮

是的!——雖然被叫做變量。但是默認情況下,Rust中的變量是不可變的。為什么 Rust 要設(shè)計出這種違背常理的邏輯呢?

實際上將變量聲明為不可變的,其目的在于 提供更強的安全性和防止?jié)撛诘腻e誤。這種設(shè)計選擇是 Rust 語言為了避免一類常見的編程錯誤,即 數(shù)據(jù)競爭data races)。

關(guān)于 數(shù)據(jù)競爭 的概念

數(shù)據(jù)競爭 是指 多個線程 同時訪問 共享數(shù)據(jù),并且至少有一個線程試圖寫入該數(shù)據(jù)的情況。在并發(fā)編程中,數(shù)據(jù)競爭是非常危險的,因為它會導(dǎo)致不確定的行為、不可預(yù)測的結(jié)果以及安全漏洞。

不可變的其它優(yōu)勢

此外,Rust 語言中將變量默認為不可變還有以下優(yōu)勢:

  1. 易于推理
    不可變變量可以幫助程序員更容易地跟蹤變量的狀態(tài)和使用。由于不可變變量的值在綁定后不會發(fā)生改變,可以更加自信地推理代碼的行為。

  2. 預(yù)防錯誤
    Rust 通過將變量默認聲明為不可變的,鼓勵程序員在編寫代碼時更加謹慎地處理數(shù)據(jù)共享和并發(fā)訪問。當變量是不可變的時候,編譯器可以進行更多的靜態(tài)分析和優(yōu)化,以確保并發(fā)訪問的安全性。在編譯時,Rust 編譯器會檢查對不可變變量的修改嘗試,并在發(fā)現(xiàn)錯誤時發(fā)出錯誤信息。這可以幫助早期發(fā)現(xiàn)潛在的錯誤,減少調(diào)試和維護的難度。

  3. 提高可讀性
    通過將變量聲明為不可變的,代碼的意圖更加清晰明了。其他開發(fā)人員可以更容易地理解和維護你的代碼,減少潛在的錯誤。

3.3 可變變量 與 mut 關(guān)鍵字

既然我們定義變量,那么就希望能夠在某些時候改變它們。如果變量完完全全不可變,那就只需要常量好了。因此 Rust 也提供了 mut 關(guān)鍵字,使我們能夠 顯式地 將一個變量聲明為 可變變量 以滿足 修改數(shù)據(jù) 的需求。我們通過將 mut 關(guān)鍵字 放在變量名之前,可以指示編譯器允許對該變量進行修改,例如,我們之前地例子中由于對不可變變量 age 做了修改導(dǎo)致于程序報錯,現(xiàn)在只需為變量 age 加上 mute 關(guān)鍵字就能讓程序正常運行:

fn main() {
    let name = "Jack Lee";
    let mut age: u32 = 27;

    age = age-1;

    println!("姓名: {}", name);
    println!("年齡: {}", age);
}

其輸出結(jié)果為:

姓名: Jack Lee
年齡: 26

這個例子表名,本文作者 Jack Lee 由于生活很開心,越活越年輕,又年輕了一歲??。文章來源地址http://www.zghlxwxcb.cn/news/detail-462702.html

到了這里,關(guān)于Rust 筆記:Rust 語言中的常量與變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • GO語言的變量與常量

    go是一個靜態(tài)語言 變量必須先定義后使用 變量必須要有類型 定義變量的方式: var 名稱 類型 var 名稱 =值 名稱 :=值 例如: 這樣就存了一個num類型為int的變量 上面使用簡化的定義通過num自動判斷后面的類型為int并賦值為1 第三種方式就是使用這種方式賦值 使用冒號加等于賦值

    2024年02月19日
    瀏覽(17)
  • Go語言基礎(chǔ)之變量和常量

    標識符 在編程語言中標識符就是程序員定義的具有特殊意義的詞,比如變量名、常量名、函數(shù)名等等。 Go語言中標識符由字母數(shù)字和_(下劃線)組成,并且只能以字母和_開頭。 舉幾個例子:abc, _, _123, a123 是指編程語言中預(yù)先定義好的具有特殊含義的標識符。

    2024年02月12日
    瀏覽(26)
  • C語言初階之常量和變量

    C語言初階之常量和變量

    在C程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。它們可與數(shù)據(jù)類型結(jié)合起來分類。例如,可分為整型常量、整型變量、浮點常量、浮點變量、字符常量、字符變量、枚舉常量、枚舉變量。在程序中, 直接常量是可以不經(jīng)說明而直接引用的,而符

    2024年02月03日
    瀏覽(19)
  • C#學(xué)習(xí)筆記--變量、常量和轉(zhuǎn)義字符

    變量是存儲數(shù)值的容器,是一門程序語言的最基礎(chǔ)的部分。 不同的變量類型可以存儲不同類型的數(shù)值。 種類: 在C#種一共有14種變量: 有符號類型4種 無符號類型4種 浮點數(shù)3種 特殊類型(char bool string) 變量的命名規(guī)則 不能以數(shù)字開頭 不能使用程序命名 不能有除下劃線

    2024年02月08日
    瀏覽(15)
  • 編程筆記 Golang基礎(chǔ) 010 常量和變量

    在 Go 語言中,常量(Constant)是一個固定的值,在程序運行期間不可被修改。它們通常用來表示那些在整個程序執(zhí)行過程中不會變化的數(shù)值或其他類型的數(shù)據(jù)。在 Go 語言中,變量是用來存儲數(shù)據(jù)的容器。 在 Go 語言中,常量(Constant)是一個固定的值,在程序運行期間不可被

    2024年02月21日
    瀏覽(19)
  • 【go語言】2.1.1 變量,常量和數(shù)據(jù)類型

    【go語言】2.1.1 變量,常量和數(shù)據(jù)類型

    Go 語言中,變量是存儲數(shù)據(jù)的基本單位,常量則是固定不變的數(shù)據(jù)。每個變量和常量都有其對應(yīng)的數(shù)據(jù)類型。 在 Go 語言中,你可以使用? var ?來聲明一個變量: 上面的代碼聲明了一個名為? name ?的變量,它的類型是? string 。你也可以在聲明變量的同時給它賦值: 或

    2024年02月15日
    瀏覽(20)
  • 【C】C語言數(shù)據(jù)類型、常量變量的介紹

    【C】C語言數(shù)據(jù)類型、常量變量的介紹

    下圖為C語言常見的數(shù)據(jù)類型: (浮點數(shù)就是我們常見的小數(shù),字符類型要用‘’引起來,在C語言中字符串類型要用字符數(shù)組來表示,以后給大家慢慢介紹) 在C語言中沒種數(shù)據(jù)類型所占的空間大小是不一樣的,在這里給大家介紹一個庫函數(shù): sizeof ,它可以計算每種數(shù)據(jù)類型

    2024年02月09日
    瀏覽(26)
  • C語言入門之變量、常量、字符串、轉(zhuǎn)義字符

    C語言入門之變量、常量、字符串、轉(zhuǎn)義字符

    文章目錄 變量 常量 字符串 轉(zhuǎn)義字符 1.變量的命名規(guī)則: 只能由字母(包括大寫和小寫)、數(shù)字和下劃線( _ )組成。 不能以數(shù)字開頭。 長度不能超過63個字符。 變量名中區(qū)分大小寫的。 變量名不能使用。 2.變量的分類: ????????變量可以分為局部變量以及全局

    2023年04月19日
    瀏覽(30)
  • 【C語言基礎(chǔ)考研向】02 數(shù)據(jù)類型-常量-變量

    【C語言基礎(chǔ)考研向】02 數(shù)據(jù)類型-常量-變量

    文章目錄: 一.數(shù)據(jù)類型 二.常量 三.變量 四. 整型數(shù)據(jù) 五.浮點型數(shù)據(jù) 六.字符型數(shù)據(jù) 七.字符串常量 數(shù)據(jù)類型分為四大類: 基本類型 整型 浮點 字符型 構(gòu)造類型 數(shù)組 結(jié)構(gòu)體 指針類型 空類型 常量是指在程序運行過程中,其值不發(fā)生變化的量。常量又可分為整型、實型(也稱浮

    2024年01月16日
    瀏覽(26)
  • SCL語言的數(shù)據(jù)類型和常量與變量聲明方式

    SCL語言的數(shù)據(jù)類型主要包含以下幾類: 1. 基本數(shù)據(jù)類型: - BOOL:布爾類型,取值為TRUE或FALSE。 - INT:整數(shù)類型,取值范圍為-32768~32767(16位PLC)或-2147483648~2147483647(32位PLC)。 - UINT:無符號整數(shù)類型,取值范圍為0~65535(16位PLC)或0~4294967295(32位PLC)。 - REAL:單精度浮點數(shù)

    2024年02月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包