Merge pull request #1015 from mistwave/fix-punctuation

Fix mixed punctuation usages
pull/1018/head
Sunface 2 years ago committed by GitHub
commit 536e3fda80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,6 +13,7 @@ fn add_with_extra(x: i32, y: i32) -> i32 {
语句会执行一些操作但是不会返回一个值,而表达式会在求值后返回一个值,因此在上述函数体的三行代码中,前两行是语句,最后一行是表达式。
对于 Rust 语言而言,**这种基于语句statement和表达式expression的方式是非常重要的你需要能明确的区分这两个概念**, 但是对于很多其它语言而言,这两个往往无需区分。基于表达式是函数式语言的重要特征,**表达式总要返回值**。

@ -64,7 +64,7 @@ let slice = &s[0..2];
let slice = &s[..2];
```
同样的,如果你的切片想要包含 `String` 的最后一个字节,则可以这样使用:
同样的,如果你的切片想要包含 `String` 的最后一个字节,则可以这样使用
```rust
let s = String::from("hello");
@ -86,7 +86,7 @@ let slice = &s[0..len];
let slice = &s[..];
```
> 在对字符串使用切片语法时需要格外小心,切片的索引必须落在字符之间的边界位置,也就是 UTF-8 字符的边界,例如中文在 UTF-8 中占用三个字节,下面的代码就会崩溃:
> 在对字符串使用切片语法时需要格外小心,切片的索引必须落在字符之间的边界位置,也就是 UTF-8 字符的边界,例如中文在 UTF-8 中占用三个字节,下面的代码就会崩溃:
>
> ```rust
> let s = "中国人";
@ -204,7 +204,7 @@ fn say_hello(s: &str) {
## 字符串索引
在其它语言中,使用索引的方式访问字符串的某个字符或者子串是很正常的行为,但是在 Rust 中就会报错:
在其它语言中,使用索引的方式访问字符串的某个字符或者子串是很正常的行为,但是在 Rust 中就会报错
```rust
let s1 = String::from("hello");
@ -607,7 +607,7 @@ fn main() {
}
```
当然,在某些情况下,可能你会希望保持字符串的原样,不要转义:
当然,在某些情况下,可能你会希望保持字符串的原样,不要转义
```rust
fn main() {
println!("{}", "hello \\x52\\x75\\x73\\x74");
@ -675,7 +675,7 @@ for b in "中国人".bytes() {
想要准确的从 UTF-8 字符串中获取子串是较为复杂的事情,例如想要从 `holla中国人नमस्ते` 这种变长的字符串中取出某一个子串,使用标准库你是做不到的。
你需要在 `crates.io` 上搜索 `utf8` 来寻找想要的功能。
可以考虑尝试下这个库:[utf8_slice](https://crates.io/crates/utf8_slice)。
可以考虑尝试下这个库[utf8_slice](https://crates.io/crates/utf8_slice)。
## 字符串深度剖析

Loading…
Cancel
Save