Rost - Tupel

Tupel ist ein zusammengesetzter Datentyp. Ein Skalartyp kann nur einen Datentyp speichern. Beispielsweise kann eine i32-Variable nur einen einzigen ganzzahligen Wert speichern. In zusammengesetzten Typen können mehrere Werte gleichzeitig gespeichert werden, und es kann sich um verschiedene Typen handeln.

Tupel haben eine feste Länge - sobald sie deklariert sind, können sie nicht wachsen oder schrumpfen. Der Tupelindex beginnt bei0.

Syntax

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

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

Illustration

Das folgende Beispiel zeigt die Werte in einem Tupel an.

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

Die Syntax println! ("{}", Tupel) kann nicht zum Anzeigen von Werten in einem Tupel verwendet werden. Dies liegt daran, dass ein Tupel ein zusammengesetzter Typ ist. Verwenden Sie die Syntax println! ("{:?}", Tuple_name) , um Werte in einem Tupel zu drucken.

Ausgabe

(-325, 4.9, 22)

Illustration

Im folgenden Beispiel werden einzelne Werte in einem Tupel gedruckt.

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);
}

Ausgabe

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

Illustration

Im folgenden Beispiel wird ein Tupel als Parameter an eine Funktion übergeben. Tupel werden als Wert an Funktionen übergeben.

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);
}

Ausgabe

Inside print method
(110, true, 10.9)

Zerstören

Die Zerstörung der Zuordnung ist ein Merkmal von Rost, bei dem wir die Werte eines Tupels auspacken. Dies wird erreicht, indem verschiedenen Variablen ein Tupel zugewiesen wird.

Betrachten Sie das folgende Beispiel -

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);
}

Die Variable x ist ein Tupel, das der let-Anweisung zugewiesen ist. Jede Variable - age, is_male und cgpa enthält die entsprechenden Werte in einem Tupel.

Ausgabe

Inside print method
Age is 30 , isMale? true,cgpa is 7.9