前言
在上一篇文章中我們介紹了Rust中的标量類型和複合類型這兩大類基礎資料類型,在這一篇文章中我們将繼續來講講Rust中标量類型和複合類型的基本使用方法。下面的例子都是在Rust Playground上面完成的。好了,現在讓我們來看看在Rust當中是怎麼使用這些資料類型的吧!
标量類型之整型資料類型的使用
聲明一個整型變量的文法如下所示:
let variable_name: data_type = value;
let為Rust提供的關鍵字,variable_name為具體變量的名字,data_type是具體的資料類型,value則是對應的值。
使用例子,如下所示:
fn main() {
let integer: u32 = 22; // 類型聲明并對其進行初始化
let integer1 = 17u32; // 使用類型推導,并在值的後面添加了類型字尾
let integer2 = 13; // 使用類型推導,并不添加類型字尾
let integer3: u32 = 0b10010; // 二進制表示
let integer4: u32 = 0o22; // 八進制表示
let integer5: u32 = 0x22; // 十六進制表示
let integer6 = 70_000; // 使用下劃線對數字進行分割增加可讀性
println!("the integer value of {}", integer);
println!("the integer1 value of {}", integer1);
println!("the integer2 value of {}", integer2);
println!("the integer3 value of {}", integer3);
println!("the integer4 value of {}", integer4);
println!("the integer5 value of {}", integer5);
println!("the integer6 value of {}", integer6);
}
标量類型之浮點類型的使用
跟整型資料類型的聲明一樣,浮點類型的聲明如下所示:
let variable_name: data_type = value;
使用例子,如下所示:
fn main() {
let float1: f32 = 2.3; // 使用類型聲明的方式
let float2 = 2.3f32; // 使用類型字尾聲明
let float3 = 3.3; // 使用類型推導,預設是f64類型
let float4 = 44_00.444_99; // 使用下劃線進行數字的分割,增強可讀性
println!("the float1 value of {}", float1);
println!("the float2 value of {}", float2);
println!("the float3 value of {}", float3);
println!("the float4 value of {}", float4);
}
标量類型之布爾類型的使用
聲明形式還是跟上面的一樣
let variable_name: data_type = value;
使用例子,如下所示:
fn main() {
let t: bool = true; // 顯示類型聲明
let f = false; // 隐式類型聲明
println!("the t value of {}", t);
println!("the f value of {}", f);
}
标量類型之字元類型的使用
聲明方式,如下所示:
let variable_name: data_type = value;
使用例子,如下所示:
fn main() {
let ch: char = 'A'; // 指定類型
let ch1 = 'Z'; // 使用類型推導
println!("the ch value of {}", ch);
println!("the ch1 value of {}", ch1);
}
複合類型之元組的使用
元組的聲明形式,如下所示:
let tuple_name: (data_type, ...) = (value, ...);
data_type表示資料類型,使用圓括号進行包裹,類型與類型之間使用逗号隔開。
value表示元組元素,元素與元素之間也使用逗号隔開。
使用例子,如下所示:
fn main() {
let tupl: (i8, f32, bool) = (-11, 2.2, true); // 使用标準的類型聲明
let tupl1 = (33.33, true, false, 5); // 使用類型推導
let (x, y, z) = tupl; // 元組解包,這跟python有點像呢
println!("x = {}, y = {}, z = {}", x, y, z);
println!("tupl1.0 = {}, tupl1.1 = {}, tupl1.2 = {}, tupl1.3 = {}", tupl1.0, tupl1.1, tupl1.2, tupl1.3);
}
注意通路元組元素時,需要使用元組名點索引的方式進行通路(tuple_name.index),例如上面的代碼,tupl1.0為元組的第一個元素。元組裡各個元素使用逗号進行分割。
複合類型之數組的使用
數組的聲明形式,如下所示:
let arr_name: [data_type; length] = [value, ...];
arr_name為數組的名字,data_type為數組的類型,length為數組的長度,value為數組成員值。data_type和長度length需時要(;)号進行分隔。
使用例子,如下所示:
fn main() {
let arr1: [i32; 5] = [1, 2, 3, 4, 5]; // 建立一個資料類型為i32,長度為5的數組
let arr2 = [1, 3, 5, 7, 9]; // 使用類型推導建立數組
let arr3: [i32; 5] = [1; 5]; // 将數組中的五個元素都初始化為i32類型,且每個元素都為1
let arr4 = [1; 3]; // 省去數組類型使用類型推導,将數組中的元素都初始化為1
println!("{:?}", arr1);
println!("{:?}", arr2);
println!("{:?}", arr3);
println!("{:?}", arr4);
println!("arr1[0] = {} arr1[1] = {}", arr1[0], arr1[1]); // 使用索引通路數組元素
}
小結
在這篇文章中我們知道了怎麼使用Rust标量和複合類型的基本使用,雖然說我們隻是将其聲明并列印出來,但是目前我們隻需如此,知道個大概就行,因為後面的路還很長呢,積少成多,一步一步來,終有登頂的一天。