Definición


Es un tramo, un área, del programa para el cual esa referencia se puede usar de manera segura.

Los lifetimes en signaturas de funciones le permiten a Rust evaluar las relaciones entre las referencias que le pasas a la función y aquellas que la función retorna, y asegurarse que se estan usando de manera segura.

Vamos a usarlo para una Estrucutura, donde uno de sus componente tiene una referencia

struct S<'a> {
	r: &'a i32
}

Donde cada valor que se crea de tipo S obtiene un lifetime nuevo 'a, el cual se restringe segun como se utilize ese valor.

Veamos un ejemplo:

struct Extremos<'elm> {
	mayor: &'elm i32,
	menor: &'elm i32,
}
 
fn encontrar_extremos<'s>(slice: &'s [i32]) -> Extrema<'s> {
	let mut mayor = &slice[0];
	let mut menor = &slice[0];
 
	for i in 1..slice.len() {
		if slice[i] < *menor { menor = &slice[i]; }
		if slice[i] > *mayor { mayor = &slice[i]; }
	}
 
	Extrema {mayor, menor }
}