Rust

Type System

Zero-cost abstractions, newtype pattern, type aliases, phantom types, const generics

20 питань зі співбесід·
Senior
1

Що таке zero-cost abstraction у Rust?

Відповідь

Zero-cost abstraction — це абстракція, яка не спричиняє жодних витрат під час виконання порівняно з еквівалентним кодом, написаним вручну. Компілятор Rust оптимізує ці абстракції так, щоб згенерований код був настільки ж ефективним, як написаний вручну низькорівневий код, без додаткових накладних витрат.

2

Яка основна перевага newtype pattern у Rust?

Відповідь

Newtype pattern створює окремий новий тип, що обгортає наявний тип, забезпечуючи безпеку типів під час компіляції. Це запобігає плутанині значень одного базового типу, але з різним змістом, наприклад ID користувачів та ID продуктів, що обидва представлені цілими числами.

3

Як оголосити type alias у Rust?

Відповідь

Type alias оголошується ключовим словом type, за яким ідуть назва alias та цільовий тип. Наприклад, type Kilometers = i32 створює alias для i32. На відміну від newtype pattern, type alias не є окремим новим типом, а лише синонімом, який можна використовувати взаємозамінно з оригінальним типом.

4

Яка різниця між type alias і newtype з точки зору type safety?

5

Що таке phantom type у Rust?

+17 питань зі співбесід

Опануй Rust для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно