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
توسط کاربر تعریف میشود، بنابراین میتواند در صورت نیاز، منطق کپیبرداری سفارشی را اجرا کند.