
Smart Pointers
Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, Deref 및 Drop trait
22 면접 질문·
Mid-Level
1Rust에서 Box<T>의 주요 사용 사례는 무엇입니까?
1
Rust에서 Box<T>의 주요 사용 사례는 무엇입니까?
답변
Box<T>는 데이터를 stack이 아닌 heap에 할당합니다. 이는 컴파일 시점에 크기를 알 수 없는 타입(재귀적 타입), 큰 데이터의 ownership을 복사 없이 이전하는 경우, 또는 trait object를 생성하는 경우에 유용합니다. Box 포인터 자체는 stack에서 고정 크기를 가집니다.
2Rust에서 연결 리스트와 같은 재귀적 타입을 어떻게 정의합니까?
2
Rust에서 연결 리스트와 같은 재귀적 타입을 어떻게 정의합니까?
답변
enum List { Cons(i32, List), Nil }와 같은 직접적인 재귀적 타입은 컴파일러가 크기를 결정할 수 없기 때문에 컴파일되지 않습니다. Box<List>를 사용하면 고정 크기(포인터)의 간접 참조가 생성되어 컴파일러가 타입의 크기를 계산할 수 있습니다.
3Rc<T>와 Arc<T>의 주요 차이점은 무엇입니까?
3
Rc<T>와 Arc<T>의 주요 차이점은 무엇입니까?
답변
Rc(Reference Counted)는 비atomic 참조 카운터를 사용하므로 성능이 더 좋지만 단일 스레드로 제한됩니다. Arc(Atomically Reference Counted)는 카운터에 atomic 연산을 사용하여 스레드 간 공유가 가능하지만 약간의 성능 오버헤드가 있습니다.
4
Rust에서 Deref trait는 무엇을 가능하게 합니까?
5
Rust에서 interior mutability(내부 가변성)란 무엇입니까?
+19 면접 질문
기타 Rust 면접 주제
Rust 기초
Junior
25개 질문Ownership & Borrowing
Junior
22개 질문Structs & Enums
Junior
20개 질문에러 처리
Junior
18개 질문컬렉션
Junior
20개 질문모듈과 패키지
Junior
18개 질문Traits
Mid-Level
22개 질문Generics
Mid-Level
20개 질문Lifetimes
Mid-Level
20개 질문Iterators & Closures
Mid-Level
22개 질문Concurrency Basics
Mid-Level
20개 질문async/await
Mid-Level
22개 질문Testing
Mid-Level
18개 질문Cargo & Ecosystem
Mid-Level
18개 질문Pattern Matching
Mid-Level
18개 질문매크로
Mid-Level
20개 질문Serde와 직렬화
Mid-Level
20개 질문Unsafe Rust
Senior
20개 질문고급 트레잇
Senior
22개 질문고급 lifetime
Senior
20개 질문Type System
Senior
20개 질문Tokio & Async I/O
Senior
22개 질문성능 최적화
Senior
20개 질문Memory Management
Senior
20개 질문Web Frameworks
Senior
22개 질문Database Integration
Senior
20개 질문Rust 디자인 패턴
Senior
20개 질문