• Rust中动态字符串的拼接哪种写法比较好?
  • 发布于 1周前
  • 36 热度
    0 评论
针对可变 String ,实现连接的方式有 push 或者 push_str 方法,还有操作符 +(其内部调用的仍是 push_str 方法)。
let mut hello = String::from("Hello, ");
let name = "lisi";

hello.push('z');
hello.push_str("hangsan and ");
hello.push_str(name);
hello += "!";
然而,使用 format! 宏常常会更加方便且符合 Rust 的习惯,尤其在连接字面量和非字面量的时候,首推使用 format!。使用它的代码往往更加简洁,易于阅读:
format!("Hello, zhangsan and {}!",name);
当然, push 操作往往性能更好且内存利用率更高(尤其是当该字符串已预先分配了足够的空间时)一些。绝大多数场景下我们更在乎程序的可读性,因此 format! 往往是更优选择!

format! 宏内部调用了 std::fmt::format 函数,而它需要使用结构体 Arguments 作为参数。构造该结构体的过程必须在编译期完成,一般可使用编译器内置实现的 format_args! 宏完成。

用户评论