۲

متغیرها، انواع داده و توابع

یادگیری الفبای زبان Rust برای ساختن کلمات و جملات!

متغیرها: ثابت به صورت پیش‌فرض!

در Rust، متغیرها به صورت پیش‌فرض تغییرناپذیر (Immutable) هستن. این یکی از ویژگی‌های امنیتی Rust هست. اگه بخوایم یه متغیر تغییرپذیر باشه، باید خودمون به صورت صریح با کلمه کلیدی `mut` مشخصش کنیم.

fn main() {
    // این متغیر ثابته و نمی‌شه تغییرش داد
    let x = 5;
    println!("The value of x is: {}", x);

    // x = 6; // اگه این خط رو از کامنت در بیاری، کامپایلر خطا می‌ده!

    // این یکی تغییرپذیره
    let mut y = 10;
    println!("The value of y is: {}", y);
    y = 20;
    println!("The new value of y is: {}", y);
}

انواع داده اصلی

Rust یه زبان Static Type هست، یعنی باید نوع هر متغیر رو در زمان کامپایل بدونه. البته کامپایلر خیلی باهوشه و در بیشتر مواقع خودش نوع رو تشخیص می‌ده. چند تا از انواع داده اصلی اینا هستن:

fn main() {
    // Integer (عدد صحیح)
    let a: i32 = -10; // 32-bit signed integer
    let b: u64 = 100; // 64-bit unsigned integer

    // Floating-Point (عدد اعشاری)
    let c: f64 = 2.5; // 64-bit float (پیش‌فرض)

    // Boolean (بولین)
    let is_rust_fun: bool = true;

    // Character (کاراکتر)
    let emoji: char = '🦀';

    println!("{}, {}, {}, {}, {}", a, b, c, is_rust_fun, emoji);
}

توابع (Functions)

توابع در Rust با کلمه کلیدی `fn` تعریف می‌شن. در Rust، باید نوع پارامترهای ورودی و مقدار خروجی رو به صورت صریح مشخص کنیم.

// تابعی که پارامتر می‌گیره
fn print_number(x: i32) {
    println!("The number is: {}", x);
}

// تابعی که مقدار برمی‌گردونه
// علامت -> نوع خروجی رو مشخص می‌کنه
fn add_five(x: i32) -> i32 {
    // آخرین عبارت در تابع که سمیکالن (;) نداره، به عنوان مقدار خروجی برگردونده می‌شه
    x + 5 
}

fn main() {
    print_number(10);
    let result = add_five(20);
    println!("20 + 5 = {}", result);
}