Rust基礎(chǔ)學習-03-變量常量和基本數(shù)據(jù)類型

這里來聊一下Rust的變量聲明,以及基本的數(shù)據(jù)類型。

可變性

與其他編程語言很不同的一點是,Rust 的變量默認是不可變的。

let x = 5;
x = 6;

這一步編譯會報錯,因為rust的變量默認是不可變的。

let mut x = 5;
x = 6;

在變量前加上 mut 則表示正在定義一個可變變量,再改其值,就不會報錯。

let x = 5;
let x = 6; 
let x = "name";

1.定義一個變量,并將5這個值綁定給這個變量
2.重新使用 let x 定義一個變量,相當于定義了一個新的變量,并且將6綁定給這個變量
3.再次使用 let x 定義一個變量,并且綁定一個不同類型的值
上面的三行代碼不會報錯,在Rust中,這個操作叫做 Shadowing,中文翻譯是,舊的變量被新的變量隱藏了。

mutShadowing 的一個區(qū)別就是,Shadowing 相當于創(chuàng)建了一個新的變量,所以可以使用完全不同類型的值

常量

  1. 聲明常量使用 const,不使用 let,例如 const MAX_NUM:u32 = 10000;。
  2. 常量也不能使用 mut
  3. 常量必須明確數(shù)據(jù)類型 const MAX_NUM:u32 = 10000;
  4. 常量默認不可變,總是不可變
  5. 常量命名規(guī)范是大寫字母加下劃線

基本數(shù)據(jù)類型

1. 整型

長度 有符號 無符號
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
arch isize usize
  1. 有符號可存儲正值和負值,無符號只能存儲正值
  2. 有符號的存儲范圍是 -(2n-1) ~ (2n-1 - 1),n是位數(shù)。例如i8可以存儲的范圍是 -128 ~ 127
  3. 無符號的存儲范圍是 0 ~ (2n - 1),例如 u8 可以存儲的范圍是 0 ~ 255
  4. isizeusize依賴于運行程序的計算機架構(gòu),64位架構(gòu)上,它們就是64位,32位架構(gòu)上,它們就是32位
  5. 默認類型是 i32

2. 浮點型

浮點型分為 f32f64,默認類型是 f64

3. 布爾型

布爾型只有兩個值 true,false。let is_student: bool = false;

4. 字符型

字符型使用單引號,例如 let c1: char = 'A';, let c1: char = '?';。有一點要注意的是,Rust 的 char 類型代表了一個 Unicode 標量值(Unicode Scalar Value),這意味著它可以比 ASCII 表示更多內(nèi)容。在 Rust 中,拼音字母(Accented letters),中文、日文、韓文等字符,emoji(繪文字)以及零長度的空白字符都是有效的 char 值。

5. 數(shù)組類型

每個元素的類型必須相同,數(shù)組的長度不能動態(tài)增長或縮小。如果要修改數(shù)組中的某個值,則數(shù)組定義時要加 mut 才行

let a = [1, 2, 3 ,4 ,5];
let b: [i32: 10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let num1 = a[0];
let num2 = a[1];

6. 元祖類型

元祖類型是將多個相同或不同類型的值,組合起來。如果要修改元祖中的某個值,則元祖定義時要加mut才行。

let tup = (1, 2, 3, "haha", 'c', 'B');
let tup2: (i32, char, char) = (15, 'C', 'D');

// 這一句稱作解構(gòu)元祖(destructuring), 將tup2中的值分給賦值給x,y,z
let (x, y z) = tup2;

// 訪問元祖中的某個值
let x = tup2.0; // 訪問第0個值
let y = tup2.1; // 訪問第1個值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容