Ferrugem - Tupla

Tupla é um tipo de dados composto. Um tipo escalar pode armazenar apenas um tipo de dados. Por exemplo, uma variável i32 pode armazenar apenas um único valor inteiro. Em tipos compostos, podemos armazenar mais de um valor por vez e podem ser de tipos diferentes.

As tuplas têm um comprimento fixo - uma vez declaradas, não podem aumentar ou diminuir de tamanho. O índice da tupla começa em0.

Sintaxe

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

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

Ilustração

O exemplo a seguir exibe os valores em uma tupla.

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

A sintaxe println! ("{}", Tupla) não pode ser usada para exibir valores em uma tupla. Isso ocorre porque uma tupla é um tipo composto. Use a sintaxe println! ("{:?}", tuple_name) para imprimir valores em uma tupla.

Resultado

(-325, 4.9, 22)

Ilustração

O exemplo a seguir imprime valores individuais em uma tupla.

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

Resultado

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

Ilustração

O exemplo a seguir passa uma tupla como parâmetro para uma função. Tuplas são passadas por valor para funções.

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

Resultado

Inside print method
(110, true, 10.9)

Destruindo

Destruir a atribuição é uma característica da ferrugem em que desempacotamos os valores de uma tupla. Isso é obtido atribuindo uma tupla a variáveis ​​distintas.

Considere o seguinte exemplo -

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

A variável x é uma tupla atribuída à instrução let. Cada variável - idade, is_male e cgpa conterá os valores correspondentes em uma tupla.

Resultado

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