Склеивание строк

Rust:
Склеивание строк

Как:

Rust предлагает несколько способов соединения текстов. Давайте разбираться.

Использование оператора +

let hello = "Hello".to_string();
let world = " world!";
let result = hello + world;
println!("{}", result); // Вывод: Hello world!

Оператор + приклеивает " world!" к "Hello", но будьте внимательны, hello должен быть String, а не срезом.

Макрос format!

let mood = "happy";
let message = format!("Желаем вам {} дня!", mood);
println!("{}", message); // Вывод: Желаем вам счастливого дня!

format! работает как println!, сочетая переменные с текстом. Очень удобен для шаблонов.

Добавление к строке

let mut tip = "Remember to".to_string();
tip.push_str(" breathe.");
println!("{}", tip); // Вывод: Remember to breathe.

push_str добавляет срез к String. Хорошо подходит для последовательного добавления частей.

Глубокое погружение

Конкатенация строк не новый концепт. Она существует с зари программирования; в конце концов, нам всегда нужно было соединять слова вместе.

В Rust, String – это растущая, изменяемая, собственная строка в кодировке UTF-8. Есть альтернативы, например, &str, срез строки, который представляет собой вид на String.

У каждого метода есть свои компромиссы:

  • Оператор + быстр для одного или двух соединений, но “поглощает” левый операнд (берет владение). Каждый + также выделяет память, что может накапливаться.

  • format! не забирает собственные значения, что вежливо, но может быть медленнее из-за своей гибкости и выделения памяти для каждого вызова. Это ваш швейцарский нож для сборки строк.

  • push_str эффективен для повторяющегося добавления. Он не выделяет память, пока String не потребует больше места.

Фокус Rust на владении и заимствовании означает, что он обращается со строками немного иначе, чем языки вроде Python или JavaScript. Это различие обеспечивает безопасность памяти, но также может сопровождаться кривой обучения.

Смотрите также

Для более глубокого изучения: