[Rust 공식문서 한국어 정리] 118. Rust Tuple 타입 가이드
[Rust 공식문서 한국어 정리] 118. Rust Tuple 타입 가이드
원문 제목: Primitive Type tuple
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust의 튜플 타입이 제공하는 고정 길이 복합 데이터 구조를 상세히 다룹니다.
여러 타입을 하나로 묶는 튜플의 구문과 사용법을 학습합니다.
튜플의 인덱싱, 분해, 패턴 매칭 활용법을 정리합니다.
단일 요소 튜플, 빈 튜플(unit), 그리고 그 의미를 설명합니다.
튜플이 반환값, 에러 전파, 임시 데이터 묶음에서 활용되는 패턴을 다룹니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① 고정 길이 — 컴파일 타임에 요소 개수와 타입이 확정
② 헤테로지니어스 — 각 요소가 서로 다른 타입 가능
③ 패턴 매칭 — let (a, b) = tuple로 분해
④ Unit 타입 () — 값이 없음을 표현하는 0-원소 튜플
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
튜플은 고정된 개수의 요소를 서로 다른 타입으로 묶는 복합 타입입니다.
(a, b, c) 구문으로 생성하며 각 요소의 타입은 (A, B, C)로 표현합니다.
튜플의 요소는 0부터 시작하는 .0, .1, .2 등으로 인덱싱합니다.
let point = (1, 2); point.0은 1을 반환합니다.
let (x, y) = point;처럼 패턴 매칭으로 튜플을 분해할 수 있습니다.
_ 와일드카드로 관심 없는 요소를 무시할 수 있습니다.
let (x, _) = point;는 첫 번째 요소만 추출합니다.
단일 요소 튜플은 (value,)처럼 쉼표가 필수입니다.
(value)는 단순한 괄호 표현이며 튜플이 아닙니다.
빈 튜플 ()은 unit 타입으로 값이 없음을 표현합니다.
함수가 반환값이 없으면 실제로는 ()를 반환합니다.
Result<(), Error>에서 ()는 성공 시 반환할 값이 없음을 나타냅니다.
튜플은 Copy나 Clone을 요소 타입에 따라 자동으로 구현합니다.
모든 요소가 Debug이면 튜플도 Debug가 자동 구현됩니다.
PartialEq, Eq, PartialOrd, Ord, Hash 등도 요소에 따라 자동 구현됩니다.
튜플은 함수에서 여러 값을 반환할 때 주로 사용됩니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
함수에서 여러 값을 반환할 때 튜플로 묶어 반환합니다.
let (min, max) = find_bounds(&data);처럼 분해하여 사용합니다.
Option<(K, V)>로 키와 값을 한 번에 반환합니다.
()을 Result의 성공값으로 사용하여 값 없는 성공을 표현합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
튜플은 고정 길이의 헤테로지니어스 데이터 묶음으로 편리합니다.
패턴 매칭과 인덱싱으로 유연하게 요소에 접근할 수 있습니다.
Unit 타입 ()은 값이 없음을 표현하는 Rust의 기본 단위입니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/primitive.tuple.html
Tuple Struct: https://doc.rust-lang.org/book/ch05-01-defining-structs.html
#Rust #Tuple #Unit #패턴매칭 #번역

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30