Rust

Smart Pointers

Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, Deref ve Drop trait'leri

22 mülakat soruları·
Mid-Level
1

Rust'ta Box<T>'nin başlıca kullanım amacı nedir?

Cevap

Box<T>, verileri stack yerine heap üzerinde tahsis eder. Bu, derleme zamanında boyutu bilinmeyen tipler (özyinelemeli tipler) için, büyük verilerin ownership'ini kopyalamadan aktarmak için ya da trait object oluşturmak için kullanışlıdır. Box pointer'ının kendisi stack üzerinde sabit bir boyuta sahiptir.

2

Rust'ta bağlı liste gibi özyinelemeli bir tip nasıl tanımlanır?

Cevap

enum List { Cons(i32, List), Nil } gibi doğrudan özyinelemeli bir tip derlenmez çünkü derleyici boyutu belirleyemez. Box<List> kullanmak, sabit boyutlu (pointer) bir dolaylama oluşturur ve böylece derleyici tipin boyutunu hesaplayabilir.

3

Rc<T> ile Arc<T> arasındaki temel fark nedir?

Cevap

Rc (Reference Counted), atomik olmayan bir referans sayacı kullanır; bu onu daha performanslı kılar ancak tek bir iş parçacığıyla sınırlar. Arc (Atomically Reference Counted), sayaç için atomik işlemler kullanır ve iş parçacıkları arasında paylaşıma izin verir, ancak küçük bir performans yükü getirir.

4

Rust'ta Deref trait'i neyi mümkün kılar?

5

Rust'ta interior mutability (iç değiştirilebilirlik) nedir?

+19 mülakat soruları

Bir sonraki mülakatın için Rust'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla