Avatar ·

¿Cómo obtener el primer carácter de un string en Rust?

¡Hola a todos! Empecé a estudiar Rust recientemente y me encontré con una tarea aparentemente simple: necesito obtener el primer carácter de un string. En Python escribiría `text[0]` y funciona. Pero en Rust este enfoque no funciona. Aquí está mi código: ```rust fn main() { let greeting = String::from("Привет, мир!"); let first_char = greeting[0]; println!("Primer carácter: {}", first_char); } ``` El compilador da un error: `the type 'String' cannot be indexed by 'usize'`. Entiendo que los strings en Rust no son simplemente arrays de caracteres, sino secuencias de bytes codificadas en UTF-8. Pero entonces, ¿cómo obtener el primer carácter? En la documentación se menciona `.chars()` y `.bytes()`, pero estoy confundido. Necesito exactamente la primera representación de grafema (carácter), no un byte. Por ejemplo, para el string "Привет" quiero obtener 'П', no algún byte. Además, ¿qué hacer si el string está vacío? ¿Y cómo manejar caracteres multibyte, como en mi ejemplo con cirílico? Por favor, explíquenme con ejemplos simples.