Ó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