“Владение строками в Rust”
Rust имеет уникальную систему владения, которая обеспечивает безопасность памяти и устраняет распространенные ошибки, такие как разыменование нулевого указателя и гонки данных. Когда дело доходит до строк, модель владения Rust обеспечивает эффективную и безопасную обработку строк. Вот несколько методов работы со строками в Rust, а также примеры кода:
-
Создание строки:
Чтобы создать новую строку, вы можете использовать функциюString::fromили просто присвоить строковый литералStringпеременная.let s1 = String::from("Hello, world!"); let s2: String = "Hello, Rust!".to_string(); -
Объединение строк.
Вы можете объединить две строки с помощью оператора+или методаString::push_str.let s1 = String::from("Hello"); let s2 = String::from(" Rust!"); let s3 = s1 + &s2; -
Присоединение к строке:
МетодString::pushпозволяет добавлять к строке один символ, аString::push_strдобавляет целую строку.let mut s = String::from("Hello"); s.push(' '); s.push_str("Rust!"); -
Длина строки:
Чтобы получить длину строки, вы можете использовать методString::len.let s = String::from("Hello, Rust!"); let len = s.len(); -
Разрез строки.
Вы можете получить фрагмент строки с помощью оператора&или методаString::get.let s = String::from("Hello, Rust!"); let slice = &s[0..5]; -
Итерация строки.
Вы можете перебирать символы строки, используя методchars.let s = String::from("Hello, Rust!"); for c in s.chars() { println!("{}", c); } -
Преобразование строк:
Rust предоставляет методы для преобразования строки в массив байтов (String::into_bytes) и наоборот (String::from_utf8).let s = String::from("Hello, Rust!"); let bytes = s.into_bytes(); let new_s = String::from_utf8(bytes).unwrap(); -
Сравнение строк.
Вы можете сравнить две строки с помощью оператора==или методаString::eq.let s1 = String::from("Hello, Rust!"); let s2 = String::from("Hello, Rust!"); if s1 == s2 { println!("Strings are equal!"); }