Clone
Bazen bir değerin bir kopyasını oluşturmak istersiniz. Clone özelliği (trait) bunu gerçekleştirir.
fn say_hello(name: String) { println!("Merhaba {name}") } fn main() { let name = String::from("Ayşe"); say_hello(name.clone()); say_hello(name); }
This slide should take about 2 minutes.
-
Clonefikri, dinamik bellek (heap) tahsislerinin nerede meydana geldiğini kolayca tespit etmektir..clone()vevec!veyaBox::newgibi birkaç diğerine bakın. -
Ödünç alma denetleyicisi (borrow checker) ile ilgili sorunlardan “klonlayarak kurtulmak” ve daha sonra bu klonları optimize etmeye çalışmak için geri dönmek yaygındır.
-
clonegenellikle değerin derin bir kopyasını (deep copy) gerçekleştirir, yani örneğin bir diziyi klonlarsanız, dizinin tüm elemanları da klonlanır. -
clone’un davranışı kullanıcı tanımlıdır, bu nedenle gerekirse özel klonlama mantığı gerçekleştirebilir.