Интерполяция строки

Rust:
Интерполяция строки

Как это сделать:

В Rust мы используем макрос format!:

fn main() {
    let name = "Ferris";
    let greeting = format!("Привет, {}!", name);
    println!("{}", greeting); // Выведет "Привет, Ferris!"
}

Макрос format! работает так же, как println!, но возвращает отформатированную строку вместо её вывода.

Погружение в тему

Rust выбрал макросы вроде format! для интерполяции строк вместо синтаксиса внутри языка. Почему? Макросы мощные и гибкие — они расширяют функциональность языка без усложнения синтаксиса.

Исторически, языки вроде C использовали функции вроде sprintf, которые были неуклюжими и склонными к ошибкам. Макрос format! в Rust безопаснее, предотвращая распространённые ошибки.

Существуют альтернативы, например, конкатенация с использованием + или макрос format_args! для избежания выделения памяти на куче. Но когда речь идёт о простоте и ясности, format! — король.

Замечание о производительности: format! выделяет память. Для кода, где критична производительность, рассмотрите другие методы, такие как прямая запись в буфер.

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