สนิม - ทูเพิล
ทูเพิลเป็นชนิดข้อมูลผสม ประเภทสเกลาร์สามารถจัดเก็บข้อมูลได้เพียงประเภทเดียว ตัวอย่างเช่นตัวแปร 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
ภาพประกอบ
ตัวอย่างต่อไปนี้ส่ง tuple เป็นพารามิเตอร์ไปยังฟังก์ชัน Tuples ถูกส่งผ่านค่าไปยังฟังก์ชัน
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)
ทำลาย
การกำหนดทำลายเป็นลักษณะของสนิมที่เราแกะค่าของทูเปิล สิ่งนี้ทำได้โดยการกำหนดทูเพิลให้กับตัวแปรที่แตกต่างกัน
ลองพิจารณาตัวอย่างต่อไปนี้ -
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