rust 是靜態型別(statically typed)語言,也就是說在編譯時就必須知道所有變數的型別
使用parse
將string
轉換為數字時,必須增加型別註解
//字串轉無符號整數
let guess: u32 = "42".parse().expect("not a number!");
標量(scalar)型別代表乙個單獨的值。rust 有四種基本的標量型別:整型、浮點型、布林型別和字元型別。你可能在其他語言中見過它們。讓我們深入了解它們在 rust 中是如何工作的。
整型整數是乙個沒有小數部分的數字。我們在第二章使用過u32
整數型別。該型別宣告表明,它關聯的值應該是乙個佔據 32 位元位的無符號整數(有符號整數型別以i
開頭而不是u
)。** 3-1 展示了 rust 內建的整數型別。在有符號列和無符號列中的每乙個變體(例如,i16
)都可以用來宣告整數值的型別。
arch
代表在不同的平台下有不同的位元組大小
長度有符號
無符號8-bit
i8
u8
16-bit
i16
u16
32-bit
i32
u32
64-bit
i64
u64
128-bit
i128
u128
arch
isize
usize
rust
中的常量字面值的表示方式
數字字面值
例子decimal
98_222
hex0xff
octal
0o77
binary
0b1111_0000
byte (u8
only)
b'a'
rust 也有兩個原生的浮點數(floating-point numbers)型別,它們是帶小數點的數字。rust 的浮點數型別是f32
和f64
,分別佔 32 位和 64 位。預設型別是f64
,因為在現代 cpu 中,它與f32
速度幾乎一樣,不過精度更高。
fn main()
fn main()
fn main()
rust 中的所有數字型別都支援基本數**算:加法、減法、乘法、除法和取餘。下面的**展示了如何在let
語句中使用它們:
fn main()
復合型別(compound types)可以將多個值組合成乙個型別。rust 有兩個原生的復合型別:元組(tuple)和陣列(array)。
tuple
一旦宣告,其長度不會增大或縮小。
fn main() ", y);
}
除了使用模式匹配解構外,也可以使用點號(.
)後跟值的索引來直接訪問它們
fn main()
這個程式建立了乙個元組,x
,並接著使用索引為每個元素建立新變數。跟大多數程式語言一樣,元組的第乙個索引值是 0。
陣列型別
另乙個包含多個值的方式是陣列(array)。與元組不同,陣列中的每個元素的型別必須相同。rust 中的陣列與一些其他語言中的陣列不同,因為 rust 中的陣列是固定長度的:一旦宣告,它們的長度不能增長或縮小。
fn main()
",a[0]
);}
Rust 資料型別
布林型別 bool 只有兩個值 true 和 false let x true let y bool false 布林型通常用在 if 語句中,也可以用在 match 語句中 fn main else match praise the borrow checher 還可以將字串 true 和 fal...
Rust 資料型別
rust語言中的基礎資料型別有以下幾種 注意 rust不支援 和 因為這兩個運算子出現在變數的前後會影響 可讀性,減弱了開發者對變數改變的意識能力。整數型 整數型簡稱整型,按照位元位長度和有無符號分為以下種類 位長度 有符號 無符號 8 bit i8 u8 16 bit i16 u16 32 bit...
rust中的基礎資料型別
復合型別 rust中的型別注釋 有符號整數主要包括i8 i16 i32 i64 i128和isize 指標大小 無符號整數主要包括u8 u16 u32 u64 u64 u128和usize 指標大小 浮點型資料主要包括f32 f64。字元型資料char,unicode標量值,比如 a b 每乙個字元...