Clone
گاهی اوقات شما میخواهید یک نسخه از مقدار بسازید. ویژگی Clone این کار را انجام میدهد.
fn say_hello(name: String) { println!("سلام {name}") } fn main() { let name = String::from("الیس"); say_hello(name.clone()); say_hello(name); }
This slide should take about 2 minutes.
-
ایدهی
Cloneاین است که شناسایی مکانهای تخصیص حافظه heap آسانتر شود. به دنبال()clone.و چند مورد دیگر مانند!vecیاBox::newبگردید. -
معمولاً برای حل مشکلات مربوط به بررسیکننده قرضگیری (borrow checker) از کپی کردن استفاده میشود و سپس در آینده تلاش میشود تا آن کپیها بهینهسازی شوند.
-
cloneمعمولاً یک کپی عمیق از مقدار را انجام میدهد، به این معنی که اگر به عنوان مثال یک آرایه را کپی کنید، تمام عناصر آن آرایه نیز کپی خواهند شد. -
رفتار
cloneتوسط کاربر تعریف میشود، بنابراین میتواند در صورت نیاز، منطق کپیبرداری سفارشی را اجرا کند.