📅  最后修改于: 2023-12-03 15:38:26.425000             🧑  作者: Mango
&str
在 Rust 中,要连接两个 &str
,可以使用 +
运算符或 to_owned()
方法。不过需要注意的是,&str
是不可变的,因此需要使用 &
来引用一个 &str
的切片,或者使用 String
类型来存储连接后的字符串。
下面是两种连接 &str
的方式:
+
运算符使用 +
运算符可以将两个字符串拼接成一个新的字符串。示例代码如下:
fn main() {
let str1 = "hello";
let str2 = "world";
let str3 = str1.to_owned() + str2;
println!("{}", str3);
}
上述代码中,变量 str1
和 str2
分别保存了两个字符串 "hello"
和 "world"
,str1.to_owned()
用于将 &str
类型的 str1
转换为 String
类型。然后再使用 +
运算符将两个字符串连接成为一个新的字符串 str3
。
执行上述代码,将输出以下结果:
helloworld
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);
}
上述代码中,变量 str1
和 str2
分别保存了两个字符串 "hello"
和 "world"
,使用 to_owned()
方法将 str1
转换为 String
类型,然后通过 push_str()
方法将 str2
连接到 string
变量上。
执行上述代码,将输出以下结果:
helloworld
因为 +
运算符会创建一个新的字符串,而 to_owned()
方法会分配新的内存用于存储 String
类型的字符串,因此两种方式的性能是有所差异的。
对于大量字符串拼接的场景,可以考虑使用 String
类型并使用 push_str()
方法来连接字符串,以提高性能。