Como iterar sobre caracteres de uma string em Rust? Percorrendo caracteres por índice
Olá a todos! Comecei a estudar Rust recentemente e me deparei com um problema ao trabalhar com strings. Preciso percorrer cada caractere de uma string e executar alguma ação sobre ele. Em outras linguagens (como Python ou C++), estou acostumado a usar índices: `string[i]` em um loop for. Mas em Rust isso não funciona.
Aqui está meu código que não compila:
```rust
fn main() {
let text = String::from("Привет, мир!");
for i in 0..text.len() {
println!("Caractere: {}", text[i]); // Erro!
}
}
```
O compilador gera um erro: `cannot index into a string of type String`. Entendo que strings em Rust não são simples arrays de caracteres, mas sequências de bytes em UTF-8. Mas como então percorrer todos os caracteres corretamente?
Preciso de uma solução que funcione corretamente com Unicode, incluindo caracteres multibyte (por exemplo, cirílico, emojis). Também seria útil saber como obter não apenas o caractere, mas também sua posição (índice) na string. Diga-me como fazer isso de forma correta e eficiente?