Сервера раст - Добро пожаловать!
Подключайтесь к лучшим серверам Rust, играйте в раст прямо сейчас! Просмотрите статистику и текущих игроков, выберите свой путь в мире выживания на серверах Rust.
Обсуждение на тему: Rust строки
Rust строки
The ownership of buf is effectively transferred to the string which may then deallocate, reallocate or change the contents of memory pointed to by the pointer at will. Use stdmem unsafe let s stringfrom(hello) prevent automatically dropping the strings data let mut s memmanuallydropnew(s) строки. String сохраняется как вектор байт (vecu8), но с гарантией, что это всегда будет действительная utf-8 последовательность. String выделяется в куче, расширяемая и не заканчивается нулевым байтом (не null-terminated). &str - это срез (&u8), который всегда указывает на действительную utf-8 последовательность, и является отображением string, так же как и &t - отображение vect. И я надеюсь пролить немного света на вопрос о том, почему в rust два строковых типа string и &str.
Я большой фанат гипермедии и увлечён созданием лёгких в использовании интерфейсов. Наш поиск приведёт нас к типу stdstringstring, что для начала совсем не плохо. Fn printme(msg string) println!(сообщение , msg) строки string в языке программирования rust, метод stringfrom, создание строк, объединение и форматирование строк, добавление символов и подстрок. Для работы со строками rust предоставляет тип string , который представляет расширяемые и изменяемые строки в кодировке utf-8. В реальности тип string представляет надстройку над вектором vecu8 , который хранит набор чисел u8, представляющих символы строки. Напомним, что в rust существует символьный тип данных char, фиксированная строка &str и строковый объект string.
Переменная типа string, в отличии от фиксированной строки, может быть не задана до компиляции и такая переменная изменяемая. Система обработки строк в rust немного отличается от других языков, потому что это язык системного программирования. Работать со структурами данных с переменным размером довольно сложно, и строки как раз такая структура данных. Кроме того, работа со строками в rust также отличается и от некоторых системных языков, таких как c. Rust имеет только один тип строки в базовом языке, который представляет собой фрагмент строки str , который обычно можно увидеть в заимствованном form &str. В главе 4 мы говорили о срезах строк, которые являются ссылками на некоторые закодированные в utf-8 строковые данные, хранящиеся в другом месте.
Например, строковые литералы хранятся в двоичном файле программы и, следовательно, являются срезами строк. At its most basic level, a string in rust is represented as a sequence of unicode scalar values encoded as a stream of utf-8 bytes. Let s hello, world! In this code snippet, s is a string that contains the text hello, world. In rust, a string literal is a slice (&str) that points to a specific section of our programs binary output which is read-only and thus immutable. This is also why string literals are sometimes referred to as static strings. .