Rust - Tuple

Mickey·2022년 1월 13일
0

Rust

목록 보기
13/32
post-thumbnail
post-custom-banner

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

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);
}

profile
Mickey
post-custom-banner

0개의 댓글