خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

هر آنچه که برای شروع نوشتن Rust باید بدانید

Rust زبان قدرتمندی است، اما از کجا باید شروع کرد؟ اگر به زبان دیگری عادت دارید، باید بدانید که Rust چگونه با این مفاهیم آشنا برخورد می کند.

از زمان انتشار در سال 2015، Rust به عنوان یکی از زبان های برنامه نویسی مورد علاقه توسعه دهندگان محبوبیت پیدا کرده است. Rust عملکرد عالی و ویژگی های امنیتی را با نحو بصری و مختصر ارائه می دهد که زبان را مطلوب می کند.

Rust برای ساخت برنامه های مختلف از جمله برنامه های وب، ابزارهای خط فرمان و خدمات شبکه مناسب است. Rust شامل بسیاری از ویژگی‌هایی است که از یک زبان برنامه‌نویسی مدرن انتظار دارید، مانند همزمانی، استنتاج نوع و موارد دیگر.

شروع کار با Rust

Rust یک زبان برنامه نویسی چند پلتفرمی است که روی اکثر سیستم عامل ها اجرا می شود. برای شروع کار با Rust، به وب سایت رسمی Rust بروید و نسخه مورد نظر را برای سیستم عامل خود نصب کنید.

هنگامی که Rust را نصب کردید، می توانید برنامه هایی را در فایل های Rust با پسوند .rs بنویسید. زنگ همه کاره است و یادگیری آن آسان است. اگر تجربه برنامه نویسی قبلی داشته باشید، آن را ساده خواهید یافت.

متغیرها و ثابت ها در زنگ

Rust بسیار رسا است و راه های متعددی برای اعلام متغیرها وجود دارد. برای تعریف متغیرها می توانید از کلمه کلیدی let استفاده کنید.

در اینجا چگونه می توانید متغیرها را در Rust اعلام کنید:

let a: String;
let b: i32;
let c: () = ();

متغیرهای a و b به ترتیب یک رشته و یک عدد صحیح هستند. متغیر c یک نوع واحد Rust است که به عنوان یک مکان نگهدار برای توابع و عبارات عمل می کند.

پس از اعلان نوع داده اختیاری، می توانید متغیرها را با مقادیر با استفاده از علامت مساوی اعلام و مقداردهی اولیه کنید.

fn main(){
    let age: String = String::from("five years old");

    let age = 5; // equivalent to let age: i32 = 5;
    println!("{}", age);
}

این برنامه قبل از چاپ با println دو متغیر سن را اعلام می کند! کلان. متغیر سنی اول نوع داده را مشخص می کند و دومی نه.

شما مجبور نیستید نوع داده یک متغیر را هنگام اعلام آن مشخص کنید. کامپایلر Rust نوع را از نوع داده مقدار در زمان کامپایل استنتاج می کند.

مطلب مرتبط:   نحوه ساخت میکروسرویس در پایتون

نتیجه چاپ یک متغیر است

شما همچنین می توانید ثابت ها را در Rust با کلمه کلیدی const به روشی مشابه با اعلان متغیرها اعلام کنید:

const age: &str = "five years old";

شما نمی توانید مقدار متغیری را که به عنوان ثابت اعلام می کنید تغییر دهید.

نظر دادن به برنامه های شما Rust

Rust عملکردی را برای نظرات تک خطی و بلوکی فراهم می کند. برای نظرات تک خطی می توانید از اسلش های دوبل رو به جلو (//) استفاده کنید:

fn main() {
    // This is a line comment
    let x = 5; // This comment explains the purpose of the `x` variable
}

برای نظرات چند خطی (نظرات بلوک)، از اسلش جلو و به دنبال آن یک ستاره (/*) استفاده کنید و بلوک را با یک ستاره و سپس یک اسلش جلو (*/) ببندید:

fn main() {
    /*
    This is a block comment that spans multiple lines.
    It is often used to describe a larger block of code.
    */
    let x = 5;
}

نظرات شما باید مختصر و صریح باشد.

آرایه ها در Rust

آرایه ها مجموعه ای با اندازه ثابت از عناصر از یک نوع داده هستند. Rust به طور پیش فرض آرایه ها را روی پشته اختصاص می دهد.

در اینجا چگونه می توانید آرایه ها را در Rust اعلام کنید:

fn main() {
    let numbers = [1, 2, 3, 4, 5];
}

آرایه اعداد شامل پنج مورد است. می توانید با استفاده از شاخص آن به مقدار در مکانی در یک آرایه دسترسی پیدا کنید:

fn main() {
    let numbers = [1, 2, 3, 4, 5];
    let x = numbers[3];
    println!("{}", x)
}

تابع main متغیر x را که به عنصر چهارم آرایه دسترسی دارد چاپ می کند.

نتیجه چاپ آرایه است

وکتورها در زنگ

Rust بردارهایی را برای پوشاندن محدودیت های آرایه فراهم می کند. بردارها به صورت پویا اندازه می شوند. آنها می توانند در صورت نیاز رشد کرده و کوچک شوند.

در اینجا چگونه می توانید بردارها را در Rust اعلام کنید:

fn main() {
    let my_vec: Vec<i32> = vec![1, 2, 3, 4, 5];
    let x = my_vec[3];
    println!("{}", x)
}

بردار my_vec بردار اعداد صحیح 32 بیتی است. متغیر x به عنصر چهارم بردار دسترسی پیدا می کند و تابع اصلی مقدار را در کنسول چاپ می کند.

اظهارات مشروط Rust

گزاره های شرطی یکی از ساختارهای کنترلی Rust برای تصمیم گیری در برنامه ها هستند. شما می توانید از کلمات کلیدی if و else برای مدیریت تصمیمات در برنامه های خود استفاده کنید.

مطلب مرتبط:   نحوه ایجاد یک منوی ناوبری جمع شونده با استفاده از React

در اینجا یک دستور if است که یک رشته را بر اساس برابری دو عدد صحیح در کنسول چاپ می کند.

fn main() {
    let a: i32 = 12;

    if a == 12 {
        println!("a equals twelve");
   }
}

تابع main رشته را با println چاپ می کند! ماکرو چون متغیر برابر با 12 است.

می توانید از کلمه کلیدی else برای رسیدگی به مواردی استفاده کنید که عبارت if false ارزیابی می شود:

fn main() {
    let a: i32 = 12;

    if a == 123 {
        println!("a equals twelve");
    } else {
        println!("a does not equal twelve");
    }
}

در این مثال، عبارت else اجرا می شود زیرا مقدار a برابر با 123 نیست.

می توانید عبارات مطابقت را با کلمه کلیدی مطابقت برای شرایط پیچیده اعلام کنید:

fn main() {
    let age: i32 = 7;

    match age {
        1 => println!("one"),
        2 => println!("two"),
        3 => println!("three"),
        _ => println!("zero"),
    }
}

تابع main متغیر سن را با موارد موجود در عبارت match مطابقت می دهد و عبارتی را که با مقدار مطابقت دارد اجرا می کند. زیرخط (_) عبارت پیش‌فرض است که در صورت وجود مطابقت با مقدار، اجرا می‌شود.

حلقه ها در Rust

Rust حلقه هایی را برای کارهای تکراری فراهم می کند. زنگ سه نوع حلقه اصلی دارد: حلقه، while و برای حلقه.

کلمه کلیدی حلقه یک حلقه بی نهایت ایجاد می کند که تا زمانی که با کلمه کلیدی شکست مواجه شود اجرا می شود:

fn main() {
    loop {
        println!("printed repeatedly until break statement is encountered.");
        break;
    }
}

حلقه while زمانی مفید است که می‌خواهید یک بلوک از کد را تا زمانی که یک شرط درست ارزیابی می‌کند، تکرار کنید:

fn main() {
    let mut count = 0;

    while count < 5 {
        println!("The count is {}", count);
        count += 1;
    }
}

یک حلقه for برای تکرار روی مجموعه ای از آیتم ها مانند یک آرایه خوب است:

fn main() {
    let numbers = [1, 2, 3, 4, 5];

    for item in numbers.iter() {
        println!("The current item is {}", item);
    }
}

این حلقه for از طریق آرایه اعداد تکرار می شود و هر آیتم را در کنسول چاپ می کند.

مطلب مرتبط:   5 کاربرد عملی کانتینرهای داکر

اعلام و فراخوانی توابع Rust

از کلمه کلیدی fn برای اعلام تابع Rust و به دنبال آن نام تابع، لیستی از پارامترها و نوع بازگشتی (در صورت وجود) استفاده کنید.

در اینجا چگونه می توانید یک تابع را با پارامترها و یک نوع بازگشتی اعلام کنید:

fn add(a: i32, b: i32) -> i32 {
    return a + b;
}

تابع add دو عدد صحیح 32 بیتی می گیرد و یک عدد صحیح 32 بیتی، مجموع دو پارامتر را برمی گرداند.

برای فراخوانی یک تابع از جای دیگری در کد خود، به سادگی نام و آرگومان ها (در صورت وجود) را مشخص کنید:

fn main() {
    let result = add(2, 3);
    println!("2 + 3 = {}", result);
}

متغیر نتیجه نتیجه فراخوانی تابع add را نگه می دارد. تابع اصلی با استفاده از println نتیجه را در کنسول چاپ می کند! کلان.

سازه در زنگ

Rust ساختارهایی را برای تعریف انواع داده های سفارشی ارائه می دهد که مقادیر مرتبط را گروه بندی می کند. ساختارها نقشه هایی برای ایجاد اشیاء با ویژگی های خاص هستند.

در اینجا چگونه می توانید یک ساختار را اعلام کنید:

struct Person {
    name: String,
    age: u32,
    is_male: bool,
}

ساختار Person دارای سه فیلد است: یک رشته، یک عدد صحیح 32 بیتی بدون علامت و یک بولی.

پس از تعریف یک ساختار، می توانید نمونه هایی از آن را در قسمت های دیگر برنامه خود ایجاد کنید:

fn main() {
    let person1 = Person {
        name: String::from("Candace Flynn"),
        age: 16,
        is_male: false,
    };
}

متغیر person1 نمونه ای از ساختار Person است. در نمونه سازی، می توانید مقادیری را به فیلدهای struct اختصاص دهید. شما می توانید هر تعداد نمونه از یک ساختار را ایجاد کنید.

شما می توانید مفاهیم OOP را در Rust پیاده سازی کنید

Rust انعطاف پذیر است و می توانید مفاهیم OOP را در Rust با ساختارهای داده داخلی مانند struct ها پیاده سازی کنید.

شما از ساختارها به عنوان جایگزینی برای کلاس ها استفاده خواهید کرد. با ساختار Rust، می توانید یک طرح اولیه برای نوع تعریف کنید و مفاهیم مختلف OOP را با قابلیت هایی که Rust بر روی ساختارها ارائه می دهد، پیاده سازی کنید.