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! выделяет память. Для кода, где критична производительность, рассмотрите другие методы, такие как прямая запись в буфер.
Смотрите также
- Официальная документация Rust по
format!: https://doc.rust-lang.org/std/macro.format.html - Сравнение
format!иprintln!: https://doc.rust-lang.org/book/ch01-02-hello-world.html - Rust by Example по форматированию: https://doc.rust-lang.org/rust-by-example/hello/print/print_display.html