Cómo ordenar un vector en Rust: ascendente, descendente y con lógica personalizada
¡Hola! Acabo de empezar a aprender Rust y me encontré con un problema: no puedo entender cómo ordenar un vector correctamente. Estoy acostumbrado a Python, donde puedo simplemente llamar a `sorted()`, pero aquí es diferente.
Supongamos que tengo un vector de números: `let mut numbers = vec![5, 2, 8, 1, 9];`. Quiero ordenarlo de forma ascendente para obtener `[1, 2, 5, 8, 9]`. Luego, quizás necesite ordenarlo de forma descendente. Intenté escribir algo como `numbers.sort()` y parece funcionar, pero no estoy seguro de que sea correcto.
También tengo un vector de strings: `let mut words = vec!["banana", "apple", "cherry", "date"];`. ¿Cómo lo ordeno en orden alfabético? ¿Y qué pasa si quiero ordenarlo por la longitud de la cadena (por ejemplo, de la más corta a la más larga)?
Y por último: tengo una estructura `Person` con campos `name` y `age`. Creé un vector `Vec`. ¿Cómo lo ordeno primero por edad y luego por nombre? En Python usaría `lambda` o `itemgetter`, ¿y en Rust qué?
Por favor, explícalo con ejemplos.