Я хочу получить первый символ std::str
. Метод char_at()
в настоящее время нестабилен, как и slice_chars
в std::string::String
.Получение одиночного символа из строки
Единственный вариант, который у меня есть в настоящее время, заключается в следующем.
let text = "hello world!";
let char_vec:Vec<char> = text.chars().collect();
let ch = char_vec[0];
Но это кажется чрезмерным, чтобы просто получить один символ, а не использовать остальную часть вектора.
Возможно, вы также захотите посмотреть, действительно ли вы хотите первый _grapheme_. – moveaway00
Это дает блок кода 'n'th, но' char_at' дает блок кода, начинающийся с байта 'n'. Последнее более полезно, поскольку большинство строковых операций имеют дело с байтовыми индексами. Это эквивалентно 'char_at' (а также постоянному времени):' text [i ..]. Chars(). Next(). Unwrap() ' – delnan
@delnan: Я бы сказал, что фактически использование' char_at' немного опасно поскольку индекс может быть * в * блоке кода. –