Merge pull request #1198 from Ethkuil/main

Update string-slice.md: 修复对 `+`、`+=` 的错误描述,并添加注释
pull/1204/merge
Sunface 2 years ago committed by GitHub
commit b8160e88a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -498,7 +498,7 @@ string_clear = ""
1、使用 `+` 或者 `+=` 连接字符串 1、使用 `+` 或者 `+=` 连接字符串
使用 `+` 或者 `+=` 连接字符串要求右边的参数必须为字符串的切片引用Slice类型。其实当调用 `+` 的操作符时,相当于调用了 `std::string` 标准库中的 [`add()`](https://doc.rust-lang.org/std/string/struct.String.html#method.add) 方法,这里 `add()` 方法的第二个参数是一个引用的类型。因此我们在使用 `+` 必须传递切片引用类型。不能直接传递 `String` 类型。**`+` `+=` 都是返回一个新的字符串。所以变量声明可以不需要 `mut` 关键字修饰**。 使用 `+` 或者 `+=` 连接字符串要求右边的参数必须为字符串的切片引用Slice类型。其实当调用 `+` 的操作符时,相当于调用了 `std::string` 标准库中的 [`add()`](https://doc.rust-lang.org/std/string/struct.String.html#method.add) 方法,这里 `add()` 方法的第二个参数是一个引用的类型。因此我们在使用 `+` 必须传递切片引用类型。不能直接传递 `String` 类型。**`+` 是返回一个新的字符串,所以变量声明可以不需要 `mut` 关键字修饰**。
示例代码如下: 示例代码如下:
@ -508,7 +508,7 @@ fn main() {
let string_rust = String::from("rust"); let string_rust = String::from("rust");
// &string_rust会自动解引用为&str // &string_rust会自动解引用为&str
let result = string_append + &string_rust; let result = string_append + &string_rust;
let mut result = result + "!"; let mut result = result + "!"; // `result + "!"` 中的 `result` 是不可变的
result += "!!!"; result += "!!!";
println!("连接字符串 + -> {}", result); println!("连接字符串 + -> {}", result);

Loading…
Cancel
Save