۷

کالکشن‌ها (Collections)

کار با لیست‌ها (Vector)، رشته‌ها (String) و دیکشنری‌ها (HashMap).

Vector (`Vec`): آرایه‌های قابل رشد

وکتورها مثل آرایه‌هایی هستن که اندازه‌شون می‌تونه بزرگ و کوچیک بشه. برای ذخیره کردن یه لیست از مقادیر هم‌نوع استفاده می‌شن.

fn main() {
    // ساختن یک وکتور جدید
    let mut v: Vec<i32> = Vec::new();

    // اضافه کردن مقدار
    v.push(5);
    v.push(6);
    v.push(7);

    // دسترسی به مقدار (به روش امن)
    match v.get(2) {
        Some(third) => println!("The third element is {}", third),
        None => println!("There is no third element."),
    }
    
    // چرخیدن روی اعضای وکتور
    for i in &v {
        println!("{}", i);
    }
}

HashMap: داده‌های کلید-مقدار

هش‌مپ‌ها بهمون اجازه می‌دن مقادیر رو تحت یک کلید خاص ذخیره کنیم. مثل دیکشنری‌ها در پایتون یا آبجکت‌ها در جاوااسکریپت.

use std::collections::HashMap;

fn main() {
    let mut scores = HashMap::new();

    // اضافه کردن مقادیر
    scores.insert(String::from("Blue"), 10);
    scores.insert(String::from("Yellow"), 50);

    // گرفتن مقدار با کلید
    let team_name = String::from("Blue");
    let score = scores.get(&team_name); // score یک Option<&i32> است
    
    // چرخیدن روی اعضای هش‌مپ
    for (key, value) in &scores {
        println!("{}: {}", key, value);
    }
}