https://www.tutorialspoint.com/rust/rust_tuple.htm
튜플은 복합 데이터 형식
스칼라 유형은 한 가지 형식의 데이터만 저장하지만 복합 데이터 형식은 한 번에 둘 이상의 형식이 다른 값을 저장 할 수 있음
튜플은 길이가 고정
일단 선언되면 크기가 커지거나 줄어들 수 없음
튜플 인덱스는 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);
}
tuple은 복합 데이터 형식이므로 println!("{ }",tuple) 구문은 튜플의 값을 표시하는 데 사용할 수 없음
튜플의 값을 인쇄하려면 println!("{:?}", tuple) 구문을 사용
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);
}
다음 예제에서는 tuple을 함수에 매개변수로 전달
tuple은 Pass by Value로 전달
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);
}
Destructuring은 tuple을 unpack하는 rust의 기능
개별 변수에 tuple을 할당 하여 destructuing 기능 수행
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);
}