Rust 元组
元组是一种复合数据类型。标量类型只能存储一种数据类型。例如,一个i32变量只能存储一个整数值。在复合类型中,我们可以一次存储多个值,这些值可以是不同的类型。
元组具有固定的长度,一旦声明后,它们的大小不能增大或缩小。元组的索引从 0 开始。
语法
//Syntax1
let tuple_name:(data_type1,data_type2,data_type3) = (value1,value2,value3);
//Syntax2
let tuple_name = (value1,value2,value3);
示例
下面的示例显示了一个元组中的值。
fn main() {
let tuple:(i32,f64,u8) = (-325,4.9,22);
println!("{:?}",tuple);
}
println!(“{ }”,tuple)语法不能用于显示元组中的值。这是因为元组是一种复合类型。使用println!(“{:?}”, tuple_name)语法来打印元组中的值。
输出
(-325, 4.9, 22)
说明
以下示例打印元组中的各个值。
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);
}
输出
integer is :-325
float is :4.9
unsigned integer is :2
说明
以下示例将一个元组作为参数传递给函数。元组在函数中按值传递。
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);
}
输出
Inside print method
(110, true, 10.9)
解构赋值
解构赋值是Rust的一个特性,其中我们将元组的值解开。这是通过将元组分配给不同的变量来实现的。
考虑以下示例−
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);
}
变量 x 是分配给let语句的元组。每个变量 – age,is_male和cgpa将包含一个元组中的相应值。
输出
Inside print method
Age is 30 , isMale? true,cgpa is 7.9