본문 바로가기

언어/Rust

[ Rust ] tuples - 다른 데이터 타입을 하나로 묶음으로 결학하기

반응형

튜플은 러스트에서 서로 다른 데이터 타입들을 하나의 묶음으로 결합할 수 있는 데이터 타입입니다. 튜플은 고정된 길이를 가지며, 각 요소의 타입이 다를 수 있습니다. 튜플은 소괄호 ()를 사용하여 정의하고, 각 요소는 쉼표로 구분됩니다.

튜플의 특징

  • 서로 다른 타입의 값을 가질 수 있습니다.
  • 길이가 고정되어 있습니다. 즉, 한 번 정의된 튜플의 길이는 변경할 수 없습니다.
  • 튜플의 요소는 인덱스로 접근할 수 있습니다.

예제 코드

fn main() {
    // 튜플 정의
    let person: (&str, i32, f64) = ("Alice", 30, 65.5);

    // 튜플의 요소에 접근
    println!("Name: {}", person.0); // "Alice"
    println!("Age: {}", person.1);  // 30
    println!("Weight: {}", person.2); // 65.5

    // 튜플의 요소를 해체(Destructuring)
    let (name, age, weight) = person;
    println!("Name: {}, Age: {}, Weight: {}", name, age, weight);
}

설명

  1. 튜플 정의: let person: (&str, i32, f64) = ("Alice", 30, 65.5);
    • 여기서 person(&str, i32, f64) 타입의 튜플입니다.
    • 각 요소는 문자열(&str), 정수(i32), 부동 소수점 숫자(f64)로 이루어져 있습니다.
  2. 튜플의 요소에 접근: person.0, person.1, person.2와 같이 인덱스를 사용하여 접근할 수 있습니다.
  3. 튜플 해체(Destructuring): let (name, age, weight) = person;와 같이 튜플의 각 요소를 변수에 할당할 수 있습니다. 이 방법은 튜플의 요소를 더 직관적으로 다룰 수 있게 해줍니다.

유용한 튜플 활용 예시

  • 함수에서 여러 값을 반환할 때 튜플을 사용하면 유용합니다.
fn calculate_area_and_perimeter(width: f64, height: f64) -> (f64, f64) {
    let area = width * height;
    let perimeter = 2.0 * (width + height);
    (area, perimeter)
}

fn main() {
    let (area, perimeter) = calculate_area_and_perimeter(5.0, 3.0);
    println!("Area: {}, Perimeter: {}", area, perimeter);
}

이 예제에서 calculate_area_and_perimeter 함수는 튜플을 사용하여 두 개의 값을 반환합니다.

반응형