02-用 format! 拼接字符串

用 format! 拼接字符串 — Rust Design Patterns

译文 · 基于 Rust Design Patterns

原文链接: https://rust-unofficial.github.io/patterns/idioms/concat-format.html

用 format! 拼接字符串

描述

可以用可变 String 上的 push 和 push_str 方法,或使用它的 + 运算符来逐步构建字符串。 不过,使用 format! 通常更方便,尤其是在字面量字符串与非字面量字符串混用的场合。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
fn say_hello(name: &str) -> String {
    // 我们可以手动构造结果字符串。
    // let mut result = "Hello ".to_owned();
    // result.push_str(name);
    // result.push('!');
    // result

    // 但使用 format! 更好。
    format!("Hello {name}!")
}

优点

使用 format! 通常是组合字符串最简洁、最易读的方式。

缺点

它通常不是组合字符串最高效的方式——在可变字符串上执行一系列 push 操作通常最高效(尤其是在字符串已按预期大小预分配的情况下)。

最后修改 August 21, 2026: 更新 (76fc81a2e)