Comment obtenir un caractère d'une chaîne par index en Rust ?
Je viens de commencer à apprendre Rust et j'ai rencontré un problème qui me semble très étrange. Dans d'autres langages, comme Python ou JavaScript, je peux facilement obtenir un caractère d'une chaîne par index : `"hello"[0]` me donne `'h'`. Mais quand j'ai essayé de faire la même chose en Rust, le compilateur a généré une erreur.
Voici mon code :
```rust
fn main() {
let s = String::from("Привет, мир!");
let first = s[0]; // Erreur !
println!("Premier caractère : {}", first);
}
```
Le compilateur dit quelque chose comme : "the type `String` cannot be indexed by `{integer}`". Je comprends que Rust est un langage sûr, mais pourquoi ne peut-on pas simplement prendre un caractère par index ? Pourtant, dans d'autres langages, ça marche ! Comment puis-je alors obtenir correctement un caractère d'une chaîne ? Qu'est-ce que je fais de mal ?
J'ai besoin de traiter chaque caractère d'une chaîne individuellement, par exemple, pour vérifier si le premier caractère est une lettre ou un chiffre. Indiquez-moi comment faire cela en Rust.
<<>>
Pourquoi Rust ne permet-il pas d'indexer les chaînes directement ?
En R