Rust

Lifetimes

Lifetime 어노테이션, 생략 규칙, 'static lifetime, struct lifetime, lifetime bounds

20 면접 질문·
Mid-Level
1

Rust에서 lifetime의 주요 목적은 무엇인가요?

답변

Lifetime을 통해 compiler는 모든 reference가 사용되는 동안 유효한지 검증할 수 있습니다. reference가 참조하는 데이터보다 더 오래 살아남지 않도록 보장하여 dangling reference를 방지합니다. borrow checker는 lifetime을 사용하여 컴파일 타임에 메모리 안전성을 검증하며 런타임 오버헤드가 없습니다.

2

reference에 lifetime을 어노테이션하려면 어떤 구문을 사용하나요?

답변

Lifetime은 아포스트로피 뒤에 이름을 붙여 어노테이션하며, 보통 'a 같은 소문자를 사용합니다. &'a T 구문은 lifetime 'a를 가진 T에 대한 reference를 의미합니다. 관례적으로 generic lifetime에는 'a, 'b, 'c를 사용하지만, 아포스트로피 뒤에는 유효한 어떤 식별자도 사용할 수 있습니다.

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을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기