Avatar ·

¿Qué significan los identificadores con comilla simple (') en Rust?

¡Hola! Empecé a estudiar Rust recientemente y constantemente me encuentro en código ajeno con identificadores extraños que comienzan con una comilla simple, por ejemplo `'a`, `'static`, `'b`. Al principio pensé que eran macros o variables especiales, pero luego noté que aparecen a menudo en declaraciones de funciones y estructuras. Aquí hay un ejemplo que encontré en la documentación: ```rust fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.len() > y.len() { x } else { y } } ``` ¿Qué es `'a`? ¿Por qué está entre corchetes angulares después del nombre de la función? Entiendo que está relacionado con el tiempo de vida (lifetime), pero no puedo entender cómo funciona. En otros lenguajes, como C++ o Java, no he visto esto. Por favor, explícame en palabras simples qué son estas criaturas y para qué sirven. Me confunde especialmente `'static` — aparece a menudo en literales de cadena y constantes. Agradecería una explicación clara con ejemplos, porque por ahora esto me parece magia.