
Macros
Macros declarativas (macro_rules!), macros derive, macros de atributo, macros procedurales, higiene de macros
1¿Cuál es la sintaxis utilizada para definir una macro declarativa en Rust?
¿Cuál es la sintaxis utilizada para definir una macro declarativa en Rust?
Respuesta
La sintaxis macro_rules! se utiliza para definir macros declarativas en Rust. Esta forma de metaprogramación usa pattern matching sobre la sintaxis de Rust para transformar código en tiempo de compilación. Las macros declarativas también se llaman "macros by example" porque funcionan haciendo match de patrones y produciendo código basado en esos patrones.
2¿Cómo invocar una macro en Rust?
¿Cómo invocar una macro en Rust?
Respuesta
Las macros en Rust se invocan con un signo de exclamación después de su nombre, seguido de los argumentos entre paréntesis, corchetes o llaves. Esta convención permite distinguir visualmente las llamadas a macros de las llamadas a funciones normales. Por ejemplo, println!("Hello") o vec![1, 2, 3] son invocaciones de macros.
3¿Qué fragment specifier usar para capturar una expresión en una macro declarativa?
¿Qué fragment specifier usar para capturar una expresión en una macro declarativa?
Respuesta
El fragment specifier $e:expr captura una expresión Rust en una macro declarativa. Los fragment specifiers definen el tipo de sintaxis que la macro puede aceptar. Otros specifiers comunes incluyen ident para identificadores, ty para tipos, tt para un token tree y block para un bloque de código.
¿Cuál es la diferencia principal entre las macros declarativas y procedurales?
¿Qué es la higiene de macros en Rust?
+17 preguntas de entrevista
Otros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Manejo de errores
Colecciones
Módulos y Paquetes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Serde y serialización
Unsafe Rust
Traits avanzados
Lifetimes Avanzados
Type System
Tokio & Async I/O
Optimización de Rendimiento
Memory Management
Web Frameworks
Database Integration
Patrones de diseño en Rust
Domina Rust para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis