如何在 Rust 中获取字符串的第一个字符?
大家好!我最近開始學習 Rust,遇到了一個看似簡單的任務:需要從字串中取得第一個字元。在 Python 中,我會寫 `text[0]`,一切正常。但在 Rust 中,這種方法行不通。
這是我的程式碼:
```rust
fn main() {
let greeting = String::from("Привет, мир!");
let first_char = greeting[0];
println!("第一個字元: {}", first_char);
}
```
編譯器報錯:`the type 'String' cannot be indexed by 'usize'`。我明白 Rust 中的字串不僅僅是字元陣列,而是 UTF-8 編碼的位元組序列。但如何取得第一個字元呢?文件中提到了 `.chars()` 和 `.bytes()`,但我搞混了。
我需要的是第一個 grapheme cluster(字元),而不是位元組。例如,對於字串 "Привет",我想得到 'П',而不是某個位元組。此外,如果字串為空該怎麼辦?以及如何處理多位元組字元,比如我的例子中的西里爾字母?
請用簡單的例子解釋一下。