如何在Rust中遍历字符串的字符?按索引遍历字符
大家好!我刚开始学习Rust,在处理字符串时遇到了问题。我需要遍历字符串的每个字符并对其执行某些操作。在其他语言(如Python或C++)中,我习惯在for循环中使用索引:`string[i]`。但在Rust中这行不通。
以下是我的代码,无法编译:
```rust
fn main() {
let text = String::from("Привет, мир!");
for i in 0..text.len() {
println!("Символ: {}", text[i]); // 错误!
}
}
```
编译器报错:`cannot index into a string of type String`。我明白Rust中的字符串不仅仅是字符数组,而是UTF-8编码的字节序列。但如何正确遍历所有字符呢?
我需要一个能正确处理Unicode(包括多字节字符,如西里尔字母、emoji)的解决方案。另外,如果能知道如何获取字符及其在字符串中的位置(索引)也会很有帮助。请告诉我如何正确且高效地实现?