欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Rust中的變量與常量

 更新時間:2022年10月20日 10:22:28   作者:Brave-AirPig  
大多數(shù)嘗試過 Rust 的人都希望繼續(xù)使用它。但是如果你沒有使用過它,你可能會想——什么是 Rust,如何理解Rust中的變量與常量,感興趣的朋友跟隨小編一起看看吧

Rust 是一種低級靜態(tài)類型多范式編程語言,專注于安全性和性能,解決了 C/C++ 長期以來一直在努力解決的問題,例如內(nèi)存錯誤和構(gòu)建并發(fā)程序。它具有以下三個優(yōu)點:

1. 靠語法和編譯器技術(shù),做到了更好的內(nèi)存安全特性;

2. 防止數(shù)據(jù)競爭的數(shù)據(jù)所有權(quán)模型,并發(fā)更容易;

3. 抽象沒有性能損失。

變量與可變性

在Rust中,哪怕你聲明的是一個變量,在默認情況下也是不可更改的,如果改變量具有更改需求,那么需要使用 let 聲明的同時給予其可變性 mut

fn main() {
    let mut x = "rust";
    println!("Hello, world! -- Hello {}", x);

    x = "test";
    println!("Hello, world! -- Hello {}", x);

}

// Hello, world! -- Hello rust
// Hello, world! -- Hello test

常量

常量使用 const 關(guān)鍵字聲明,常量在綁定值之后也是不可以進行更改的,但是它與不可變的變量有些區(qū)別:

  • 不可以使用 mut 關(guān)鍵字,因為常量永遠都是不可變的
  • 聲明常量的同時必須標(biāo)注其數(shù)據(jù)類型
  • 常量可以在任何作用域中聲明,包括全局作用域
  • 常量只能被綁定到常量表達式,不能被綁定到函數(shù)的調(diào)用結(jié)果或只能在運行時才能計算出的值
  • 在程序運行期間,常量在其聲明的作用域內(nèi)一直有效
  • 常量名建議大寫,每個獨立單詞之間使用下劃線分割開來
fn main() {
    const X: char = '??';
    println!("Hello, world! -- Hello {}", X);
}

變量隱藏屬性

在Rust語言中變量有這樣一個特性:隱藏

也就是說我們可以使用同名去聲明一個新的變量,新的變量會將之前聲明的變量隱藏,或者你可以理解為覆蓋?

隱藏和變量mut化是不一樣的,根本區(qū)別就是mut允許改變之前的變量值,而隱藏特性是再次聲明一個同名變量,隱藏之前的變量

在者說,如果我們不使用 let 關(guān)鍵字,那么重新給非 mut 變量賦值會導(dǎo)致編譯時的錯誤,而使用 let 聲明的同名變量,也是不可變的

還有一個特性,就是我們使用 let 聲明的同名新變量的類型是沒有必要和之前的變量數(shù)據(jù)類型相同的

fn main() {
    let test = 66;
    println!("Hello, world! -- Hello {}", test);

    let test: char = '??';
    println!("Hello, world! -- Hello {}", test);
}

// Hello, world! -- Hello 66
// Hello, world! -- Hello ??

就這個例子我們還可以體驗一下Rust的安全以及規(guī)范

如果隱藏變量沒有被使用,那么編譯會報錯

fn main() {
    let test = 66;
    let test: char = '??';
    println!("Hello, world! -- Hello {}", test);
}

// help: if this is intentional, prefix it with an underscore: `_test`

Rust提醒我了,如果我們是故意操作,需要在test前加上_ ??

到此這篇關(guān)于Rust中的變量與常量的文章就介紹到這了,更多相關(guān)Rust變量與常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rust中的Iterator和IntoIterator介紹及應(yīng)用小結(jié)

    Rust中的Iterator和IntoIterator介紹及應(yīng)用小結(jié)

    Iterator即迭代器,它可以用于對數(shù)據(jù)結(jié)構(gòu)進行迭代,被迭代的數(shù)據(jù)結(jié)構(gòu)是可迭代的(iterable),所謂的可迭代就是這個數(shù)據(jù)結(jié)構(gòu)有返回迭代器的方法,這篇文章主要介紹了Rust中的Iterator和IntoIterator介紹及應(yīng)用,需要的朋友可以參考下
    2023-07-07
  • Rust?編程語言中的所有權(quán)ownership詳解

    Rust?編程語言中的所有權(quán)ownership詳解

    這篇文章主要介紹了Rust?編程語言中的所有權(quán)ownership詳解的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 從零開始使用Rust編寫nginx(TLS證書快過期了)

    從零開始使用Rust編寫nginx(TLS證書快過期了)

    wmproxy已用Rust實現(xiàn)http/https代理,?socks5代理,?反向代理,?負載均衡,?靜態(tài)文件服務(wù)器,websocket代理,四層TCP/UDP轉(zhuǎn)發(fā),內(nèi)網(wǎng)穿透等,本文給大家介紹從零開始使用Rust編寫nginx(TLS證書快過期了),感興趣的朋友一起看看吧
    2024-03-03
  • Rust語言中的哈希表

    Rust語言中的哈希表

    哈希表也是集合中的一種,也是最常用的集合形式,目前Rust語言核心部分沒有對哈希表進行實現(xiàn),是使用標(biāo)準(zhǔn)庫提供的,這篇文章主要介紹了Rust語言之哈希表,需要的朋友可以參考下
    2024-02-02
  • Rust 多線程編程的實現(xiàn)

    Rust 多線程編程的實現(xiàn)

    在rust中,多線程編程不算困難,但是也需要留心和別的編程語言中不同的地方,本文主要介紹了Rust 多線程編程的實現(xiàn),感興趣的可以了解一下
    2023-12-12
  • Rust文件 launch.json作用大全

    Rust文件 launch.json作用大全

    launch.json 是 Visual Studio Code(VSCode)中的一個配置文件,主要用于配置調(diào)試器,本文給大家介紹Rust文件 launch.json 有什么用,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • 使用Rust實現(xiàn)日志記錄功能

    使用Rust實現(xiàn)日志記錄功能

    這篇文章主要為大家詳細介紹了使用Rust實現(xiàn)日志記錄功能的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的可以參考一下
    2024-04-04
  • 探索?Rust?中實用的錯誤處理技巧

    探索?Rust?中實用的錯誤處理技巧

    探索Rust中實用的錯誤處理技巧!Rust是一門靜態(tài)類型系統(tǒng)安全且高效的編程語言,但使用過程中難免會遇到各種錯誤,學(xué)會如何正確處理這些錯誤至關(guān)重要,本指南將為您提供一些實用的錯誤處理技巧,幫助您更好地編寫健壯的代碼,需要的朋友可以參考下
    2024-01-01
  • Rust捕獲全局panic并記錄進程退出日志的方法

    Rust捕獲全局panic并記錄進程退出日志的方法

    本文提供了捕獲全局panic并記錄進程退出日志的方法,首先使用 panic::set_hook 注冊異常處理及panic 觸發(fā)異常,結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Rust 數(shù)據(jù)分析利器polars用法詳解

    Rust 數(shù)據(jù)分析利器polars用法詳解

    這篇文章主要介紹了Rust 數(shù)據(jù)分析利器polars用法詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08

最新評論