rust中的元组
rust中的元组是不同类型的值的集合。
一般通过括号()
来构建元组,元组本身是一个有类型签名的值(T1、T2、...)
,
其中T1
,T2
是元组中元素的值的类型。
函数可以使用元组来作为参数,或者使用原组来从函数一次返回多个值。
元组中元素的引用
一般通过元组元素的下标来引用元组的元素,元组也是一个对象,元素的下标就是属性值。
let long_tuple = (
1u8,2u16,3u32,4u64,
-1i8, -2i16, -3i32, -4i64,
0.1f32, 0.2f64,
'a', true
);
println!("long tuple first value: {}", long_tuple.0);
println!("long tuple second value: {}", long_tuple.1);
元组的定义是可以嵌套的,即元组的元组
let tuple_of_tuples = ((1u8, 2u16, 2u32), (4u64, -1i8), -2i16);
println!("tuple of tuples: {:?}", tuple_of_tuples);
元组的元素太长时,无法被打印
let too_long_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
// 下面的println!调用会出现编译错误
println!("too long tuple: {:?}", too_long_tuple);
需要区分单个元素的元组和一个字面值常量
println!("one element tuple: {:?}", (5u32,));
println!("just an integer: {:?}", (5u32));
元组元素的分解
let tuple = (1, "hello", 4.5, true);
let(a, b, c, d) = tuple;
println!("{:?}, {:?}, {:?}, {:?}", a, b, c, d);