tuple 튜플형
tuple
- 다양한 타입의 여러 값을 묶어 하나의 복합 타입으로 만드는 자료형
- 복합 타입은 compound type 이라고 한다.
- 고정된 길이(length)를 가지며, 한 번 선언되면 길이를 변경할 수 없다.
선언 방법
- 괄호 안에 원소값을 넣으며, 각 원소는 쉼표로 구분한다.
- 튜플과 같은 compound type은
{:?}
로 출력이 가능하다.
1
2
3
4
| let tup: (i32, f64, u8) = (32213, 2.41242, 254);
println!("{:?}", tup);
>> (32213, 2.41242, 254)
|
- 선언 시 데이터타입을 생략하면 자동적으로 어울리는 데이터타입이 설정된다.
1
2
3
4
| let tup = (123, 1.232, "러스트");
println!("{:?}", tup);
>> (123, 1.232, "러스트")
|
사용 방법
구조해제 바인딩
: 튜플 내 각 원소를 한 번에 여러 변수에 바인딩 할 수 있다.
1
2
3
4
5
6
7
8
9
| let tup = (123, 1.232, "러스트");
let (a, b, c) = tup;
println!("{}", a);
>> 123
println!("{}", b);
>> 1.232
println!("{}", c);
>> 러스트
|
- 튜플 내 각 원소에 접근할 때에는
필드접근방식(dot syntax)
를 사용한다.
- 원소 번호는 0부터 시작된다.
1
2
3
4
5
6
| let tup: (f64, f64, &str) = (123.0, 1.232, "러스트");
println!("{}", tup.2);
>> 러스트
println!("{}", tup.0 + tup.1);
>> 124.232
|
유닛 Unit
- 아무 원소도 가지고 있지 않은 튜플
- Rust 에서 특별한 의미를 가지는데,
- 함수의 반환값이 없을 때나 부작용 중심의 연산을 표현할 때 사용된다.
- 즉, “의미있는 값을 전달하지 않는다” 라는 의미.
1
2
3
4
| let unit = ();
println!("{:?}", unit);
>> ()
|
정리하기
- 튜플 : 다양한 데이터타입의 원소를 묶어 만드는 하나의 복합 데이터 타입
- 괄호 안에 원소값들을 쉼표로 구분하여 사용한다.
- 내부 원소에 접근할 때에는 필드 접근 방식 (dot syntax) 를 이용한다.
- 원소가 없는 튜플을 유닛이라고 하며, 반환값이 없는 경우 등을 표현할 때 사용한다.
Reference
https://doc.rust-kr.org/ch03-02-data-types.html
https://doc.rust-lang.org/book/ch03-02-data-types.html
Comments