Update string-slice.md

修正有误的表述:
[0..2]应该指三个字节,而非两个;
每个汉字占用4个字节,而非三个。
pull/1492/head
NayutaNick 2 months ago committed by GitHub
parent ff9e90d15d
commit 970a58ae1d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -94,7 +94,7 @@ let slice = &s[..];
> println!("{}",a); > println!("{}",a);
> ``` > ```
> >
> 因为我们只取 `s` 字符串的前两个字节,但是本例中每个汉字占用三个字节,因此没有落在边界处,也就是连 `中` 字都取不完整,此时程序会直接崩溃退出,如果改成 `&s[0..3]`,则可以正常通过编译。 > 因为我们只取 `s` 字符串的前三个字节,但是本例中每个汉字占用四个字节,因此没有落在边界处,也就是连 `中` 字都取不完整,此时程序会直接崩溃退出,如果改成 `&s[0..3]`,则可以正常通过编译。
> 因此,当你需要对字符串做切片索引操作时,需要格外小心这一点,关于该如何操作 UTF-8 字符串,参见[这里](#操作-utf-8-字符串)。 > 因此,当你需要对字符串做切片索引操作时,需要格外小心这一点,关于该如何操作 UTF-8 字符串,参见[这里](#操作-utf-8-字符串)。
字符串切片的类型标识是 `&str`,因此我们可以这样声明一个函数,输入 `String` 类型,返回它的切片:`fn first_word(s: &String) -> &str `。 字符串切片的类型标识是 `&str`,因此我们可以这样声明一个函数,输入 `String` 类型,返回它的切片:`fn first_word(s: &String) -> &str `。

Loading…
Cancel
Save