Como obter um caractere de uma string por índice em Rust? Indexação de strings
Olá a todos! Comecei a estudar Rust recentemente e me deparei com um problema que me deixa muito confuso. Estou acostumado com outras linguagens de programação, como Python ou C++, onde posso simplesmente escrever `my_string[0]` e obter o primeiro caractere. Em Rust, tentei fazer o mesmo, e o compilador gerou um erro.
Aqui está meu código:
```rust
fn main() {
let hello = String::from("Привет");
let first_char = hello[0]; // Erro!
println!("Primeiro caractere: {}", first_char);
}
```
O compilador diz algo como `the trait bound 'String: Index<{integer}>' is not satisfied`. Sinceramente, não entendo por que strings não podem ser indexadas como arrays comuns. Afinal, uma string é uma sequência de caracteres, certo? Tentei pesquisar, mas as respostas no Stack Overflow em inglês são muito complexas para um iniciante.
Vocês podem explicar em palavras simples:
1. Por que em Rust não podemos simplesmente acessar um caractere de uma string por índice?
2. Como obter corretamente um caractere individual ou uma substring?
3. O que é `chars