Rouille - Tuple

Tuple est un type de données composé. Un type scalaire ne peut stocker qu'un seul type de données. Par exemple, une variable i32 ne peut stocker qu'une seule valeur entière. Dans les types composés, nous pouvons stocker plus d'une valeur à la fois et elle peut être de différents types.

Les tuples ont une longueur fixe - une fois déclarés, ils ne peuvent pas grandir ou rétrécir. L'index de tuple commence à partir de0.

Syntaxe

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

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

Illustration

L'exemple suivant affiche les valeurs dans un tuple.

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

La syntaxe println! ("{}", Tuple) ne peut pas être utilisée pour afficher des valeurs dans un tuple. En effet, un tuple est un type composé. Utilisez la syntaxe println! ("{:?}", tuple_name) pour imprimer les valeurs dans un tuple.

Production

(-325, 4.9, 22)

Illustration

L'exemple suivant imprime des valeurs individuelles dans un tuple.

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

Production

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

Illustration

L'exemple suivant passe un tuple comme paramètre à une fonction. Les tuples sont passés par valeur aux fonctions.

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

Production

Inside print method
(110, true, 10.9)

Destruction

L'affectation de destruction est une fonctionnalité de rust dans laquelle nous décompressons les valeurs d'un tuple. Ceci est réalisé en attribuant un tuple à des variables distinctes.

Prenons l'exemple suivant -

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

La variable x est un tuple qui est affecté à l'instruction let. Chaque variable - age, is_male et cgpa contiendra les valeurs correspondantes dans un tuple.

Production

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