Rust

Macro

Macro dichiarative (macro_rules!), macro derive, macro attribute, macro procedurali, igiene delle macro

20 domande da colloquio·
Mid-Level
1

Qual è la sintassi utilizzata per definire una macro dichiarativa in Rust?

Risposta

La sintassi macro_rules! viene utilizzata per definire macro dichiarative in Rust. Questa forma di metaprogrammazione usa il pattern matching sulla sintassi Rust per trasformare il codice in fase di compilazione. Le macro dichiarative sono chiamate anche "macros by example" perché funzionano facendo match di pattern e producendo codice basato su quei pattern.

2

Come si invoca una macro in Rust?

Risposta

Le macro in Rust vengono invocate con un punto esclamativo dopo il loro nome, seguito dagli argomenti tra parentesi tonde, quadre o graffe. Questa convenzione permette di distinguere visivamente le chiamate alle macro dalle chiamate a funzioni normali. Per esempio, println!("Hello") o vec![1, 2, 3] sono invocazioni di macro.

3

Quale fragment specifier usare per catturare un'espressione in una macro dichiarativa?

Risposta

Il fragment specifier $e:expr cattura un'espressione Rust in una macro dichiarativa. I fragment specifier definiscono il tipo di sintassi che la macro può accettare. Altri specifier comuni includono ident per gli identificatori, ty per i tipi, tt per un token tree e block per un blocco di codice.

4

Qual è la differenza principale tra macro dichiarative e procedurali?

5

Cos'è l'igiene delle macro in Rust?

+17 domande da colloquio

Padroneggia Rust per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis