Rust

Lifetimes

Lifetime-Annotationen, Elisionsregeln, 'static-Lifetime, Struct-Lifetimes, Lifetime-Bounds

20 Interview-Fragen·
Mid-Level
1

Was ist der Hauptzweck von Lifetimes in Rust?

Antwort

Lifetimes ermöglichen es dem Compiler zu überprüfen, dass alle References während ihrer gesamten Verwendung gültig sind. Sie stellen sicher, dass eine Reference niemals länger lebt als die Daten, auf die sie verweist, und verhindern so Dangling References. Der Borrow Checker verwendet Lifetimes, um die Speichersicherheit zur Compile-Zeit zu validieren, ohne Laufzeit-Overhead.

2

Welche Syntax wird verwendet, um eine Lifetime an einer Reference zu annotieren?

Antwort

Lifetimes werden mit einem Apostroph gefolgt von einem Namen annotiert, typischerweise einem Kleinbuchstaben wie 'a. Die Syntax &'a T bedeutet eine Reference auf T mit der Lifetime 'a. Konventionell werden 'a, 'b, 'c für generische Lifetimes verwendet, aber nach dem Apostroph kann jeder gültige Bezeichner stehen.

3

Was bedeutet die 'static-Lifetime in Rust?

Antwort

Die 'static-Lifetime gibt an, dass eine Reference während der gesamten Programmlaufzeit leben kann. String-Literale wie "hello" haben automatisch die 'static-Lifetime, weil sie in das Binary eingebettet sind. Globale Konstanten und mit Box::leak erstellte Werte haben ebenfalls diese Lifetime. Hinweis: 'static bedeutet nicht, dass der Wert seit Programmstart existiert, sondern dass er bis zum Ende leben kann.

4

Wie viele Lifetime-Elisionsregeln wendet der Rust-Compiler automatisch an?

5

Warum lässt sich eine Funktion fn longest(x: &str, y: &str) -> &str nicht kompilieren?

+17 Interview-Fragen

Meistere Rust für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten