Rust Basics

Rust Tuples and Arrays

Group a few values of different types in a tuple, and a fixed number of same-typed values in an array.

  • Beginner
  • 3 min read
  • 1 runnable example
What you'll learn
  • Tuples and .0 .1
  • Arrays with [T; N]
  • Returning two values
scores: [i32; 5]
720
951
582
883
644
Indexes start at 0. The highest score is at index 1.

Fixed-size groups of values

A tuple groups a few values that can have different types. An array holds a fixed number of values of one type, and its length is part of its type.

[i32; 5] is an array of five i32 values. min_max returns two results at once as a tuple, and let (lowest, highest) unpacks them. Tuple fields are read by position with .0 and .1.

Key points

  1. An array's length is part of its type: [i32; 5].
  2. A tuple can mix types: (3, -2.5).
  3. let (a, b) = pair; unpacks a tuple.

Runnable Rust example

Rust
Run code →
main.rs
fn min_max(values: [i32; 5]) -> (i32, i32) {
    let mut min = values[0];
    let mut max = values[0];
    for value in values {
        if value < min {
            min = value;
        }
        if value > max {
            max = value;
        }
    }
    (min, max)
}

fn main() {
    let scores = [72, 95, 58, 88, 64];
    let (lowest, highest) = min_max(scores);

    println!("first: {}, count: {}", scores[0], scores.len());
    println!("lowest: {lowest}, highest: {highest}");

    let point = (3, -2.5);
    println!("x = {}, y = {}", point.0, point.1);
}
Get a Run button for this example Result of running the code
first: 72, count: 5
lowest: 58, highest: 95
x = 3, y = -2.5

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Next: Vectors →

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges