📜  如何在 rust 中连接两个 &str(1)

📅  最后修改于: 2023-12-03 15:38:26.425000             🧑  作者: Mango

如何在 Rust 中连接两个 &str

在 Rust 中,要连接两个 &str,可以使用 + 运算符或 to_owned() 方法。不过需要注意的是,&str 是不可变的,因此需要使用 & 来引用一个 &str 的切片,或者使用 String 类型来存储连接后的字符串。

下面是两种连接 &str 的方式:

1. 使用 + 运算符

使用 + 运算符可以将两个字符串拼接成一个新的字符串。示例代码如下:

fn main() {
    let str1 = "hello";
    let str2 = "world";
    let str3 = str1.to_owned() + str2;
    println!("{}", str3);
}

上述代码中,变量 str1str2 分别保存了两个字符串 "hello""world"str1.to_owned() 用于将 &str 类型的 str1 转换为 String 类型。然后再使用 + 运算符将两个字符串连接成为一个新的字符串 str3

执行上述代码,将输出以下结果:

helloworld
2. 使用 to_owned() 方法

另一种连接 &str 的方式是使用 to_owned() 方法将 &str 类型转换为 String 类型,然后使用 push_str() 方法将两个字符串连接到同一个 String 类型变量中。示例代码如下:

fn main() {
    let str1 = "hello";
    let str2 = "world";
    let mut string = str1.to_owned();
    string.push_str(str2);
    println!("{}", string);
}

上述代码中,变量 str1str2 分别保存了两个字符串 "hello""world",使用 to_owned() 方法将 str1 转换为 String 类型,然后通过 push_str() 方法将 str2 连接到 string 变量上。

执行上述代码,将输出以下结果:

helloworld

因为 + 运算符会创建一个新的字符串,而 to_owned() 方法会分配新的内存用于存储 String 类型的字符串,因此两种方式的性能是有所差异的。

对于大量字符串拼接的场景,可以考虑使用 String 类型并使用 push_str() 方法来连接字符串,以提高性能。