Rust - Tuple
Tuple là một kiểu dữ liệu phức hợp. Kiểu vô hướng chỉ có thể lưu trữ một kiểu dữ liệu. Ví dụ, một biến i32 chỉ có thể lưu trữ một giá trị nguyên duy nhất. Trong các loại phức hợp, chúng ta có thể lưu trữ nhiều giá trị cùng một lúc và nó có thể thuộc nhiều loại khác nhau.
Tuples có chiều dài cố định - một khi được khai báo chúng không thể phát triển hoặc thu nhỏ kích thước. Chỉ mục tuple bắt đầu từ0.
Cú pháp
//Syntax1
let tuple_name:(data_type1,data_type2,data_type3) = (value1,value2,value3);
//Syntax2
let tuple_name = (value1,value2,value3);
Hình minh họa
Ví dụ sau đây hiển thị các giá trị trong một bộ giá trị.
fn main() {
let tuple:(i32,f64,u8) = (-325,4.9,22);
println!("{:?}",tuple);
}
Các println! ( "{}", Tuple) cú pháp không thể được dùng để hiển thị giá trị trong một tuple. Điều này là do tuple là một loại hợp chất. Sử dụng cú pháp println! ("{:?}", Tuple_name) để in các giá trị trong một bộ giá trị.
Đầu ra
(-325, 4.9, 22)
Hình minh họa
Ví dụ sau in các giá trị riêng lẻ trong một bộ.
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);
}
Đầu ra
integer is :-325
float is :4.9
unsigned integer is :2
Hình minh họa
Ví dụ sau đây chuyển một tuple dưới dạng tham số cho một hàm. Các bộ giá trị được truyền theo giá trị cho các hàm.
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);
}
Đầu ra
Inside print method
(110, true, 10.9)
Phá hủy
Hủy chuyển nhượng là một đặc điểm của gỉ trong đó chúng ta giải nén các giá trị của một bộ giá trị. Điều này đạt được bằng cách gán một bộ giá trị cho các biến riêng biệt.
Hãy xem xét ví dụ sau:
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);
}
Biến x là một bộ giá trị được gán cho câu lệnh let. Mỗi biến - age, is_male và cgpa sẽ chứa các giá trị tương ứng trong một bộ giá trị.
Đầu ra
Inside print method
Age is 30 , isMale? true,cgpa is 7.9