Avatar ·

如何在 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(字元),而不是位元組。例如,對於字串 "Привет",我想得到 'П',而不是某個位元組。此外,如果字串為空該怎麼辦?以及如何處理多位元組字元,比如我的例子中的西里爾字母? 請用簡單的例子解釋一下。