如果我想对一个字符串进行多次小的添加,最好的方法是什么?是否有适合这种操作的数据类型?
如果我想对一个字符串进行多次小的添加,最好的方法是什么?是否有适合这种操作的数据类型?
使用字符串原生类型,它被设计成可变且易于增长。
let mut s = String::new();
s.push_str("GET / HTTP/1.0\r\n");
s.push_str("User-Agent: foobar\r\n"); // Etc etc
&str
类型,你可以使用目标 String
作为 Writer 来推送其他数据类型的字符串表示形式:fn main() {
let mut target_string = String::new();
use std::fmt::Write;
write!(target_string, "an integer: {}\n", 42).unwrap();
writeln!(target_string, "a boolean: {}", true).unwrap();
assert_eq!("an integer: 42\na boolean: true\n", target_string);
}
这个宏需要 Write
trait。
任何实现了 write
的类型都可以被 write!
写入。使用 Write
方法前,需要先将其导入当前上下文。可以使用 use std::fmt::Write;
导入 Write
trait。
文档链接:
write!(..)
: https://doc.rust-lang.org/core/macro.write.htmlwriteln!(..)
: https://doc.rust-lang.org/core/macro.writeln.html这篇答案所使用的参考资料: Rust String concatenation