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