1. 程式人生 > >rust學習筆記基礎篇2--基礎變數宣告的基本規則(霜之小刀)

rust學習筆記基礎篇2--基礎變數宣告的基本規則(霜之小刀)

rust學習筆記基礎篇2–基礎變數宣告的基本規則(霜之小刀)

歡迎轉載和引用,若有問題請聯絡
若有疑問,請聯絡
Email : [email protected]
QQ:2279557541


Rust的對變數的宣告很嚴格,有嚴格的型別和必須在宣告時進行初始化。
關於型別可以是顯示的宣告也可以使隱式的宣告。
顯示的使用
let vab:i32 = 123i32;
這裡是想宣告一個32位的有符號整數。
一方面在變數名後面的冒號後面對型別進行了說明,一方面在123這個整數後面對值的型別也做了說明,這是最嚴格的變數聲明瞭。
但是型別也不是必須要寫的,編譯器也可以根據上下文推匯出變數的型別。
如下方的寫法都是沒有問題的

let a = 123;//123預設被推導為i32的型別
let a1:i8 = 123;
let a2 = 123i16;

這樣就知道變數的宣告方式了,但這裡又有一個問題,說的是變數,但是。。。我根本沒辦法修改這個變數的值,明明不可變,應該是常量的意思啊。比如下面這段程式碼就會在編譯的時候報錯

let a = 123;
a = 456;

編譯錯誤為cannot assign twice to immutable variable a.
不能兩次給不可變變數賦值。
這裡就要引入另外一個關鍵詞叫mut,表示變數可以被改變,這才是真的變數,二不加mut的說是常亮更合適。
定義可變變數的語法如下所示

let mut a = 123;
a = 456

這樣編譯就沒有錯誤了,值也可以修改了
而試用這種宣告方式的RUST內建型別有如下幾種

有符號整數: i8, i16, i32, i64 和isize (指標大小)
無符號整數: u8, u16, u32, u64 和 usize (指標大小)
浮點: f32, f64
char Unicode標值一樣 'a', 'α''∞' (每4位元組)
bool 以及 truefalse

這裡在說明下,上面的指標大小指的是,如果是64位電腦,那麼就是佔用8位元組,如果是32位電腦就佔用4位元組。