Rust 語言中的基礎(chǔ)數(shù)據(jù)類型有以下幾種。
整數(shù)型簡稱整型,按照比特位長度和有無符號分為一下種類:
位長度 | 有符號 | 無符號 |
---|---|---|
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
isize 和 usize 兩種整數(shù)類型是用來衡量數(shù)據(jù)大小的,它們的位長度取決于所運行的目標(biāo)平臺,如果是 32 位架構(gòu)的處理器將使用 32 位位長度整型。
整數(shù)的表述方法有以下幾種:
進(jìn)制 | 例 |
---|---|
十進(jìn)制 | 98_222 |
十六進(jìn)制 | 0xff |
八進(jìn)制 | 0o77 |
二進(jìn)制 | 0b1111_0000 |
字節(jié)(只能表示 u8 型) | b'A' |
很顯然,有的整數(shù)中間存在一個下劃線,這種設(shè)計可以讓人們在輸入一個很大的數(shù)字時更容易判斷數(shù)字的值大概是多少。
Rust 與其它語言一樣支持 32 位浮點數(shù)(f32)和 64 位浮點數(shù)(f64)。默認(rèn)情況下,64.0 將表示 64 位浮點數(shù),因為現(xiàn)代計算機(jī)處理器對兩種浮點數(shù)計算的速度幾乎相同,但 64 位浮點數(shù)精度更高。
fn main() { let x = 2.0; // f64 let y: f32 = 3.0; // f32 }
用一段程序反應(yīng)數(shù)學(xué)運算:
fn main() { let sum = 5 + 10; // 加 let difference = 95.5 - 4.3; // 減 let product = 4 * 30; // 乘 let quotient = 56.7 / 32.2; // 除 let remainder = 43 % 5; // 求余 }
許多運算符號之后加上 = 號是自運算的意思,例如:
sum += 1 等同于 sum = sum + 1。
注意:Rust 不支持 ++ 和 --,因為這兩個運算符出現(xiàn)在變量的前后會影響代碼可讀性,減弱了開發(fā)者對變量改變的意識能力。
布爾型用 bool 表示,值只能為 true 或 false。
字符型用 char 表示。
Rust的 char 類型大小為 4 個字節(jié),代表 Unicode標(biāo)量值,這意味著它可以支持中文,日文和韓文字符等非英文字符甚至表情符號和零寬度空格在 Rust 中都是有效的 char 值。
Unicode 值的范圍從 U+0000 到 U+D7FF 和 U+E000 到 U+10FFFF (包括兩端)。 但是,"字符"這個概念并不存在于 Unicode 中,因此您對"字符"是什么的直覺可能與Rust中的字符概念不匹配。所以一般推薦使用字符串儲存 UTF-8 文字(非英文字符盡可能地出現(xiàn)在字符串中)。
注意:由于中文文字編碼有兩種(GBK 和 UTF-8),所以編程中使用中文字符串有可能導(dǎo)致亂碼的出現(xiàn),這是因為源程序與命令行的文字編碼不一致,所以在 Rust 中字符串和字符都必須使用 UTF-8 編碼,否則編譯器會報錯。
元組用一對 ( ) 包括的一組數(shù)據(jù),可以包含不同種類的數(shù)據(jù):
let tup: (i32, f64, u8) = (500, 6.4, 1); // tup.0 等于 500 // tup.1 等于 6.4 // tup.2 等于 1 let (x, y, z) = tup; // y 等于 6.4
數(shù)組用一對 [ ] 包括的同類型數(shù)據(jù)。
let a = [1, 2, 3, 4, 5]; // a 是一個長度為 5 的整型數(shù)組 let b = ["January", "February", "March"]; // b 是一個長度為 3 的字符串?dāng)?shù)組 let c: [i32; 5] = [1, 2, 3, 4, 5]; // c 是一個長度為 5 的 i32 數(shù)組 let d = [3; 5]; // 等同于 let d = [3, 3, 3, 3, 3]; let first = a[0]; let second = a[1]; // 數(shù)組訪問 a[0] = 123; // 錯誤:數(shù)組 a 不可變 let mut a = [1, 2, 3]; a[0] = 4; // 正確