Существует два типа для строк String, &str(срез), и посимвольный тип char.
Тип String.
String Строка(стринг) - Основной строковый тип, используется когда мы хотим динамически изменять количество символов. добавлять и удалять символы и строки. Всегда допустимы в кодировке UTF-8. (По сути String - это как Vec<u8>).
Тип Char.
char(чар) - может содержать только один символ, является примитивным типом. Скорей всего мы будем использовать также символы UTF-8. (По сути char - это как `u8`)
> Является Юникод скалярным значением, значения диапазон 0 до D7FF16 и E00016 до 10FFFF16 включительно. Юникод нет понятия как один символ, так что иногда результат может отличатся.
Тип &str (срез).
&str(Срез) - строковый литерал, также известный как срез строки. является примитивным строковым типом, Разнится &str от String в том, что String динамическая память, а str представляет собой как массив, и имеет фиксированный размер и часто передается как ссылка. Используется когда нужна строка которая не передаёт владение и не изменяется. в других случаях использовать тип String. Другими словами Срез используем только для передачи в качестве аргумента или как срез символов строки. Срезы строк всегда допустимы в кодировке UTF-8. (По сути &str - это как `&[u8]`).
Особенности &str.
Используйте в качестве аргумента &str в функции, если мы не хотим изменять данные строки, такая функция может принять и String, но в переменная преобразует в срез.
Можно использовать часть String, как срез, другими словами мы указывает диапазон чтения.
Примеры.
Цель 1: Получить данные с клавиатуры, вывести в консоль. Ввод-Вывод строки.
Я нашёл такую функцию, которая принимает описание что за данные нужны и ожидает ввод. и если присвоить результат переменой можно использовать введенные данные.
Цель 2: Получить количество символов.
Например для размера кнопки под текст. но так как в unicode нет понятия символа, результат может отличатся, решение я нашел тут, и меня устроил и первоначальный результат.
Цель 3: Получить текст посимвольно.
Вывод
Мы рассмотрели типы для работы с текстом, основные особенности этих типов и как взаимодействовать друг с другом. но существует ещё много методов которые можно изучить, так же и со стороны логики использования.