天天看點

Rust資料類型的使用

作者:是啊七呀

前言

在上一篇文章中我們介紹了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标量和複合類型的基本使用,雖然說我們隻是将其聲明并列印出來,但是目前我們隻需如此,知道個大概就行,因為後面的路還很長呢,積少成多,一步一步來,終有登頂的一天。

繼續閱讀