P.STR.05 在拼接字符串时,优先使用format!

【描述】

在Rust中有很多方法可以连接字符串,不同的连接方法适用于不同的场景,性能也会有所差别。

【示例】

 // 组合字符串是最简单和直观的方法,尤其是在字符串和非字符串混合的情况下。
 fn main() {
	let name = "world!";
	let hw = format!("Hello {}!", name);
	println!("{:#?}", hw);
 }
 
 // 在追加字符串的时候,可以使用`push_str`方法,`push_str`性能比`format!`更好
 fn main() {
    let mut hw = String::new();
    hw.push_str("hello");
    hw.push_str(" world!");
    println!("{:#?}", hw);
}

 // 通过`concat()`方法将字符串数组拼接成一个字符串
 fn main() {
    let hw = ["hello", " ", "world!"].concat();
    println!("{:#?}", hw);
 }
 
 // 通过`join()`方法将字符串数组拼接成一个字符串
 fn main() {
    let hw_1 = ["hello", "world!"].join("");
    println!("{:#?}", hw_1);
	// 输出:
	// helloworld!
	
    // 使用`join()`方法在拼接字符串时添加或指定字符
    let hw_2 = ["hello", "world!"].join("+");
    println!("{:#?}", hw_2);
	// 输出:
	// hello+world!
 }
 
 // 使用`collect()`方式对数组中的字符串进行拼接
 fn main() {
    let hw = ["hello", " ", "world!"];
    let res: String = hw.iter().map(|x| *x).collect();
    println!("{:#?}", res);
 }
 
 // 使用符号`+`进行字符串拼接
 fn main() {
    let hw_1 = &(String::from("hello") + &String::from(" ") + &String::from("world!"));
    println!("{:#?}", hw_1);
    
    let hw_2 = &(String::from("hello") + " " + "world!");
    println!("{:#?}", hw_2);
    
    let hw_3 = &("hello".to_owned() + " " + "world!");
    println!("{:#?}", hw_3);

    let hw_4 = &("hello".to_string() + " " + "world!");
    println!("{:#?}", hw_4);
 }