Rust

Rust — وام گیری (Borrowing)

آخرین بروزرسانی: 1404/08/14

وام گیری (Borrowing)

گاهی می خواهی یک مقدار را «بدون گرفتن مالکیت» استفاده کنی. در راست، این کار با «ارجاع (Reference)» انجام می شود. به این کار «وام گیری (Borrowing)» می گویند.

ارجاع چیست؟

ارجاع، نگاه کردن به مقدار بدون مالک شدن است. با نماد & می سازی.

fn main() {
  let a = String::from("Hello");
  let b = &a;
  println!("a = {}", a);
  println!("b = {}", b);
}

مشاهده در ادیتور

نکته: چون b فقط قرض می گیرد، مالکیت نزد a می ماند.

ارجاع قابل تغییر (Mutable Reference)

اگر می خواهی مقدار را از طریق ارجاع عوض کنی، ارجاع باید mut باشد.

fn main() {
  let mut name = String::from("John");
  let name_ref = &mut name;
  name_ref.push_str(" Doe");
  println!("{}", name_ref);
}

مشاهده در ادیتور

هشدار: هم زمان فقط «یک» ارجاع قابل تغییر مجاز است.

چرا وام گیری مهم است؟

وام گیری، استفاده ی امن بدون انتقال مالکیت را ممکن می کند. همچنین، از clone اضافی جلوگیری می کند و برنامه را سریع تر می کند.

گام های تمرین

  1. یک String بساز و یک ارجاع ساده بگیر.
  2. هر دو را چاپ کن و نتیجه را بررسی کن.
  3. یک نسخه mut بساز و متن را تغییر بده.
  4. قانون «یک ارجاع قابل تغییر» را رعایت کن.

جمع بندی سریع

  • ارجاع، مالکیت را جابه جا نمی کند.
  • با & ارجاع می گیری.
  • برای تغییر، ارجاع باید mut باشد.
  • فقط یک ارجاع mut هم زمان مجاز است.

برای پیش نیازها، مالکیت را ببین. همچنین، رشته ها را مرور کن. آموزش وام گیری در راست را نشان گذاری کن.