Найти тему
Rust.rs

Rust - Работа с текстом.

Оглавление

Существует два типа для строк 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: Получить текст посимвольно.

Вывод

Мы рассмотрели типы для работы с текстом, основные особенности этих типов и как взаимодействовать друг с другом. но существует ещё много методов которые можно изучить, так же и со стороны логики использования.