Rust - 元組



元組是一種複合資料型別。標量型別只能儲存一種型別的資料。例如,一個 i32 變數只能儲存單個整數值。在複合型別中,我們可以一次儲存多個值,並且這些值可以是不同型別的。

元組具有固定長度——一旦宣告,它們的大小就不能增長或縮小。元組索引從0開始。

語法

//Syntax1
let tuple_name:(data_type1,data_type2,data_type3) = (value1,value2,value3);

//Syntax2
let tuple_name = (value1,value2,value3);

示例

下面的示例顯示元組中的值。

fn main() {
   let tuple:(i32,f64,u8) = (-325,4.9,22);
   println!("{:?}",tuple);
}

不能使用println!("{ }",tuple) 語法來顯示元組中的值。這是因為元組是一種複合型別。使用println!("{:?}", tuple_name) 語法列印元組中的值。

輸出

(-325, 4.9, 22)

示例

下面的示例列印元組中的各個值。

fn main() {
   let tuple:(i32,f64,u8) = (-325,4.9,22);
   println!("integer is :{:?}",tuple.0);
   println!("float is :{:?}",tuple.1);
   println!("unsigned integer is :{:?}",tuple.2);
}

輸出

integer is :-325
float is :4.9
unsigned integer is :2

示例

下面的示例將元組作為引數傳遞給函式。元組按值傳遞給函式。

fn main(){
   let b:(i32,bool,f64) = (110,true,10.9);
   print(b);
}
//pass the tuple as a parameter

fn print(x:(i32,bool,f64)){
   println!("Inside print method");
   println!("{:?}",x);
}

輸出

Inside print method
(110, true, 10.9)

解構

解構賦值是 Rust 的一個特性,我們可以透過它來解包元組的值。這是透過將元組賦值給不同的變數來實現的。

考慮以下示例:

fn main(){
   let b:(i32,bool,f64) = (30,true,7.9);
   print(b);
}
fn print(x:(i32,bool,f64)){
   println!("Inside print method");
   let (age,is_male,cgpa) = x; //assigns a tuple to 
   distinct variables
   println!("Age is {} , isMale? {},cgpa is 
   {}",age,is_male,cgpa);
}

變數x是一個元組,它被賦值給 let 語句。每個變數——age、is_male 和 cgpa 將包含元組中對應的值。

輸出

Inside print method
Age is 30 , isMale? true,cgpa is 7.9
廣告
© . All rights reserved.