
Lifetimes
Lifetime 어노테이션, 생략 규칙, 'static lifetime, struct lifetime, lifetime bounds
20 면접 질문·
Mid-Level
1Rust에서 lifetime의 주요 목적은 무엇인가요?
1
Rust에서 lifetime의 주요 목적은 무엇인가요?
답변
Lifetime을 통해 compiler는 모든 reference가 사용되는 동안 유효한지 검증할 수 있습니다. reference가 참조하는 데이터보다 더 오래 살아남지 않도록 보장하여 dangling reference를 방지합니다. borrow checker는 lifetime을 사용하여 컴파일 타임에 메모리 안전성을 검증하며 런타임 오버헤드가 없습니다.
2reference에 lifetime을 어노테이션하려면 어떤 구문을 사용하나요?
2
reference에 lifetime을 어노테이션하려면 어떤 구문을 사용하나요?
답변
Lifetime은 아포스트로피 뒤에 이름을 붙여 어노테이션하며, 보통 'a 같은 소문자를 사용합니다. &'a T 구문은 lifetime 'a를 가진 T에 대한 reference를 의미합니다. 관례적으로 generic lifetime에는 'a, 'b, 'c를 사용하지만, 아포스트로피 뒤에는 유효한 어떤 식별자도 사용할 수 있습니다.
3Rust에서 'static lifetime은 무엇을 의미하나요?
3
Rust에서 'static lifetime은 무엇을 의미하나요?
답변
'static lifetime은 reference가 프로그램의 전체 실행 기간 동안 살아 있을 수 있음을 나타냅니다. "hello" 같은 string literal은 binary에 포함되어 있기 때문에 자동으로 'static lifetime을 가집니다. 전역 상수와 Box::leak으로 생성된 값도 이 lifetime을 가집니다. 주의: 'static은 값이 프로그램 시작부터 존재했다는 의미가 아니라 끝까지 살아 있을 수 있다는 의미입니다.
4
Rust compiler는 lifetime 생략 규칙을 몇 개 자동으로 적용하나요?
5
함수 fn longest(x: &str, y: &str) -> &str 가 컴파일되지 않는 이유는 무엇입니까?
+17 면접 질문
기타 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개 질문Iterators & Closures
Mid-Level
22개 질문Smart Pointers
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개 질문