Óxido - Tupla

Tuple es un tipo de datos compuesto. Un tipo escalar puede almacenar solo un tipo de datos. Por ejemplo, una variable i32 puede almacenar solo un valor entero. En los tipos compuestos, podemos almacenar más de un valor a la vez y puede ser de diferentes tipos.

Las tuplas tienen una longitud fija: una vez declaradas, no pueden crecer ni encogerse de tamaño. El índice de tupla comienza desde0.

Sintaxis

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

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

Ilustración

El siguiente ejemplo muestra los valores en una tupla.

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

La sintaxis println! ("{}", Tupla) no se puede utilizar para mostrar valores en una tupla. Esto se debe a que una tupla es de tipo compuesto. Utilice la sintaxis println! ("{:?}", tuple_name) para imprimir valores en una tupla.

Salida

(-325, 4.9, 22)

Ilustración

El siguiente ejemplo imprime valores individuales en una 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);
}

Salida

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

Ilustración

El siguiente ejemplo pasa una tupla como parámetro a una función. Las tuplas se pasan por valor a funciones.

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

Salida

Inside print method
(110, true, 10.9)

Destruyendo

La asignación de destrucción es una característica de la oxidación en la que desempaquetamos los valores de una tupla. Esto se logra asignando una tupla a distintas variables.

Considere el siguiente ejemplo:

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 es una tupla que se asigna a la instrucción let. Cada variable: edad, is_male y cgpa contendrá los valores correspondientes en una tupla.

Salida

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