En aquest tema, explorarem els diferents tipus de dades que Rust ofereix. Rust és un llenguatge de programació fortament tipat, el que significa que cada variable té un tipus que es determina en temps de compilació. Això ajuda a evitar molts errors comuns i fa que el codi sigui més segur i eficient.

Tipus de Dades Bàsics

Tipus Escalars

Els tipus escalars representen un sol valor. Rust té quatre tipus escalars principals:

  1. Enter (Integer)
  2. Punt Flotant (Floating-Point)
  3. Booleà (Boolean)
  4. Caràcter (Character)

Enter (Integer)

Els enters són nombres sense part decimal. Rust suporta diversos tipus d'enters, que es diferencien per la seva mida i si són signats o no signats.

Tipus Mida Rang
i8 8 bits -128 a 127
u8 8 bits 0 a 255
i16 16 bits -32,768 a 32,767
u16 16 bits 0 a 65,535
i32 32 bits -2,147,483,648 a 2,147,483,647
u32 32 bits 0 a 4,294,967,295
i64 64 bits -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
u64 64 bits 0 a 18,446,744,073,709,551,615
isize Depèn de l'arquitectura Depèn de l'arquitectura
usize Depèn de l'arquitectura Depèn de l'arquitectura

Exemple:

fn main() {
    let x: i32 = 42;
    let y: u8 = 255;
    println!("x: {}, y: {}", x, y);
}

Punt Flotant (Floating-Point)

Els tipus de punt flotant representen nombres amb part decimal. Rust suporta dos tipus de punt flotant:

Tipus Mida Precisió
f32 32 bits Simple precisió
f64 64 bits Doble precisió

Exemple:

fn main() {
    let x: f32 = 3.14;
    let y: f64 = 2.718281828459045;
    println!("x: {}, y: {}", x, y);
}

Booleà (Boolean)

El tipus booleà té dos valors possibles: true i false.

Exemple:

fn main() {
    let t: bool = true;
    let f: bool = false;
    println!("t: {}, f: {}", t, f);
}

Caràcter (Character)

El tipus char representa un caràcter Unicode. Cada char ocupa 4 bytes.

Exemple:

fn main() {
    let c: char = 'z';
    let z: char = 'ℤ';
    let heart_eyed_cat: char = '😻';
    println!("c: {}, z: {}, heart_eyed_cat: {}", c, z, heart_eyed_cat);
}

Tipus Compostos

Els tipus compostos poden agrupar múltiples valors en una sola entitat. Rust té dos tipus compostos principals:

  1. Tuples
  2. Arrays

Tuples

Les tuples poden agrupar diversos valors de diferents tipus en una sola entitat. La mida d'una tupla és fixa.

Exemple:

fn main() {
    let tup: (i32, f64, u8) = (500, 6.4, 1);
    let (x, y, z) = tup; // Desestructuració
    println!("x: {}, y: {}, z: {}", x, y, z);
}

Arrays

Els arrays poden agrupar múltiples valors del mateix tipus en una sola entitat. La mida d'un array és fixa.

Exemple:

fn main() {
    let a: [i32; 5] = [1, 2, 3, 4, 5];
    let first = a[0];
    let second = a[1];
    println!("first: {}, second: {}", first, second);
}

Exercicis Pràctics

Exercici 1: Declaració de Variables

Declara variables de diferents tipus de dades i imprimeix-les.

fn main() {
    let a: i32 = 10;
    let b: f64 = 3.14;
    let c: bool = true;
    let d: char = 'R';
    println!("a: {}, b: {}, c: {}, d: {}", a, b, c, d);
}

Exercici 2: Treballant amb Tuples

Crea una tupla amb tres elements de diferents tipus i desestructura-la per imprimir els seus valors.

fn main() {
    let tup: (i32, f64, char) = (42, 6.28, 'R');
    let (x, y, z) = tup;
    println!("x: {}, y: {}, z: {}", x, y, z);
}

Exercici 3: Treballant amb Arrays

Crea un array de cinc elements i accedeix als seus elements per imprimir-los.

fn main() {
    let arr: [i32; 5] = [10, 20, 30, 40, 50];
    for i in 0..arr.len() {
        println!("arr[{}]: {}", i, arr[i]);
    }
}

Resum

En aquest tema, hem explorat els tipus de dades bàsics i compostos en Rust. Hem après sobre els tipus escalars com els enters, punts flotants, booleans i caràcters, així com els tipus compostos com les tuples i els arrays. Aquests conceptes són fonamentals per a la programació en Rust i ens ajudaran a construir programes més complexos en els següents mòduls.

© Copyright 2024. Tots els drets reservats