Beginner Fundamentals

Data Types

Rust is statically typed: every value has a type known at compile time. The most basic types are the scalar types, which hold a single value.

Integers

Integers come in signed (i) and unsigned (u) variants with different sizes, like i32, u8, or i64.

fn main() {
    let a: i32 = -42;
    let b: u8 = 255;
    println!("{} {}", a, b);
}

Floats and booleans

Floating-point numbers are f32 or f64. Booleans hold true or false.

fn main() {
    let pi: f64 = 3.14159;
    let is_active: bool = true;
    println!("{} {}", pi, is_active);
}

Characters

A char holds a single Unicode character, written with single quotes.

fn main() {
    let letter: char = 'R';
    let emoji: char = '🦀';
    println!("{} {}", letter, emoji);
}

Tuples

A tuple groups several values of possibly different types. Access fields by index.

fn main() {
    let point: (i32, i32, char) = (10, 20, 'P');
    println!("x = {}, y = {}", point.0, point.1);

    let (x, y, label) = point; // destructuring
    println!("{} {} {}", x, y, label);
}