rust學習(四)變量與數據類型
創建項目
cargo new variablescd cargo
變量
編寫代碼
fn main() {
let x: i32 = 12;
println!("The value of x is: {x}");
x = 6;
println!("The value of x is: {x}");
}
這段代碼如果在RustRover內會出現錯誤提示:

偶然發現可以查看E0384錯誤.
ps:如果我們想查看錯誤示例,可以前往rust官網的錯誤狀態碼:https://doc.rust-lang.org/error_codes/E0384.html
修改代碼如下:

可以正常運行。

也就是說,rust變量默認不可變,在某種特定情況下,認為變量可變可以聲明mut關鍵字實現。
常量
通過const關鍵字可以定義一個常量,常量在定義時必須指定值類型。不允許對常量使用mut關鍵字,并且常量可以在任何作用域內聲明,包括全局作用域。
常量只能被聲明為常值表達式,不可以是其他任何只能在運行時計算出的值。
聲明它的作用域之中,常量在整個程序生命周期中都有效。


遮蔽
rust允許我們通過let關鍵字多次重新聲明同名的變量,可以不用考慮命名的困擾。

第二個變量遮蔽了第一個變量,任何使用該變量名的行為中都會視為是在使用第二個變量,直到第二個變量自己也被遮蔽或第二個變量的作用域結束。
為了書寫數據類型的相關代碼,我們使用cargo重新創建一個項目
cargo new data_typescd data_types
數據類型
rust中每一個值都有一個特定的數據類型
兩類數據類型: 標量和復合類型
標量類型
rust中標量類型代表一個單獨的值。rust中有四種基本標量類型:整型、浮點類型、布爾類型和字符類型。
整型
整型是一個沒有小數的數,可以分為有符號整數和無符號整數。rust中i表示有符號;u表示無符號。以無符號數為例,例如u8表示8位無符號整數,以此類推有u16,u32,u64,u128,usize。usize的值與操作系統有關,如果是32位操作系統那么就是32位,如果是64位操作系統,那么就是64位。有符號數也是類似i16,i32,i64,i128,isize.默認聲明一個整型變量它的類型是i32。
在計算機中,有符號數都采用補碼的形式表示。

note:對于表示范圍(如8位無符號整數的表示范圍為0255;8位有符號整數的表示范圍為-128+127),如果學過計算機組成原理,這部分就十分簡單了。
浮點類型
提到浮點數,計算機組成最經典的就是IEEE-754標準。現代計算機中浮點數默認都采用此標準。
rust中的浮點類型有f32和f64,默認類型是f64。
f32 是單精度浮點數,f64 是雙精度浮點數。對應計算機組成原理里面float與double類型。
以f32為例,32位中第1位為符號位,中間8位數為階碼(移碼表示,移碼偏移量為127),后面23位數為尾數(原碼表示)。
ps:這是復習考研時間的內容,由于這里學的是rust就不過多闡述了嘻嘻!

布爾類型
rust中布爾類型的值類型關鍵字為bool。值有兩個true和false

字符類型
Rust 的 char 類型是語言中最原始的字母類型。用單引號聲明 char 字面值,而與之相反的是,使用雙引號聲明字符串字面值

復合類型
復合類型可以將多個值組合成一個類型。rust的組合類型有元組tuple和數組array
元組
元組長度固定,一旦聲明其長度不會增大也不會縮小。使用包含在圓括號中的逗號分隔的值列表來創建一個元組。元組中的每一個位置都有一個類型,而且這些不同值的類型也不必是相同的。

數組
rust中數組內每個元素的類型必須一致,且數組的長度是固定的。
通過let來定義數組: let variable_name: [data_type,size] = [element1,element2,...]
訪問數組元素通過數組下標來實現,和其它語言一樣,數組下標默認從0開始。
// 數組中每個元素的值類型都必須一致
// rust中數組的長度是固定的
// 數組的類型:[data_type;size] --> [i32; 5] i32表示每個元素的類型,分號之后的數字代表數組內的元素個數
let _arr_data: [i32; 5] = [1, 2, 3, 4, 5];
// 確保總是有固定數量的元素時,數組非常有用
let months: [&str; 12] = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
];
// 通過數組下標訪問數組元素,下標從0開始
let jan = months[0];
println!("The value of jan is: {jan}");
// 通過在方括號中指定初始值加分號再加元素個數的方式來創建一個每個元素都為相同值的數組
let _arr = [3;4]; // 變量名為 arr 的數組將包含 4 個元素,這些元素的值最初都將被設置為 3
由于參閱的是書籍內容,示例并沒有寫太多,需要更多例子求助AI也可以嘿嘿!

浙公網安備 33010602011771號