Rust

Smart Pointers

Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, Deref- en Drop-traits

22 gespreksvragen·
Mid-Level
1

Wat is het primaire gebruiksgeval van Box<T> in Rust?

Antwoord

Box<T> alloceert data op de heap in plaats van op de stack. Dit is handig voor types met een onbekende grootte tijdens compile-time (recursieve types), om de ownership van grote data over te dragen zonder te kopiëren, of om trait objects te maken. De Box-pointer zelf heeft een vaste grootte op de stack.

2

Hoe definieer je een recursief type zoals een linked list in Rust?

Antwoord

Een direct recursief type zoals enum List { Cons(i32, List), Nil } compileert niet omdat de compiler de grootte niet kan bepalen. Door Box<List> te gebruiken ontstaat een indirectie met een vaste grootte (pointer), waardoor de compiler de grootte van het type kan berekenen.

3

Wat is het belangrijkste verschil tussen Rc<T> en Arc<T>?

Antwoord

Rc (Reference Counted) gebruikt een niet-atomaire referentieteller, wat het performanter maakt maar beperkt tot één thread. Arc (Atomically Reference Counted) gebruikt atomaire operaties voor de teller, waardoor delen over threads heen mogelijk is, maar met een lichte performance-overhead.

4

Wat maakt de Deref-trait mogelijk in Rust?

5

Wat is interior mutability (interne wijzigbaarheid) in Rust?

+19 gespreksvragen

Beheers Rust voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis