Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

مالکیت

تمام پیوندهای متغیر دارای یک دامنه هستند که در آن معتبر هستند و استفاده از متغیر خارج از دامنه‌اش یک خطاست:

struct Point(i32, i32);

fn main() {
    {
        let p = Point(3, 4);
        println!("x: {}", p.0);
    }
    println!("y: {}", p.1);
}

می‌گوییم که متغیر مالک مقدار است. هر مقدار در Rust در هر لحظه دقیقاً یک مالک دارد.

در پایان دامنه، متغیر حذف می‌شود و داده‌ها آزاد می‌شوند. یک ویرایشگر (destructor) می‌تواند در اینجا اجرا شود تا منابع را آزاد کند.

This slide should take about 5 minutes.

دانش‌آموزانی که با پیاده‌سازی‌های جمع‌آوری زباله آشنا هستند، خواهند دانست که یک جمع‌آوری‌کننده زباله با مجموعه‌ای از “ریشه‌ها” برای یافتن تمام حافظه‌های قابل دسترسی شروع می‌کند. اصول “مالکیت تک‌گانه” Rust ایده مشابهی است.