diff --git a/book/contents/advance/comment.md b/book/contents/advance/comment.md index 15a8b6c7..01ac52f9 100644 --- a/book/contents/advance/comment.md +++ b/book/contents/advance/comment.md @@ -267,8 +267,8 @@ pub fn add_one(x: i32) -> Option { } ``` -此处的**[`Option`]**就是一个链接,指向了标准库中的`Option`枚举类型,有两种方式可以进行跳转: -- 在IDE中,使用`Command + 鼠标左键`(mac系统下) +此处的 **[`Option`]** 就是一个链接,指向了标准库中的`Option`枚举类型,有两种方式可以进行跳转: +- 在IDE中,使用`Command + 鼠标左键`(mac系统下),`CTRL + 鼠标左键`(win系统下) - 在文档中直接点击链接 再比如,还可以使用路径的方式跳转: @@ -409,7 +409,7 @@ use art::utils::mix; fn main() { let blue = PrimaryColor::Blue; let yellow = PrimaryColor::Yellow; - println!("{:?}",mix(blue, yellow)); + println!("{:?}",mix(blue, yellow)); } ``` diff --git a/book/contents/advance/custom-type.md b/book/contents/advance/custom-type.md index 5f15aa2e..6f379004 100644 --- a/book/contents/advance/custom-type.md +++ b/book/contents/advance/custom-type.md @@ -13,7 +13,7 @@ 一箩筐的理由~~ 让我们先从第二点讲起。 #### 为外部类型实现外部特征 -在之前的章节中,我们有讲过如果在外部类型上实现外部特征必须使用`newtype`的方式,否则你就得遵循孤儿规则:要为类型`A`实现特征`T`,那么`A`或者`T`必须有一个在当前的作用范围内。 +在之前的章节中,我们有讲过如果在外部类型上实现外部特征必须使用`newtype`的方式,否则你就得遵循孤儿规则:要为类型`A`实现特征`T`,那么`A`或者`T`必须至少有一个在当前的作用范围内。 例如, 如果想使用`println!("{}",v)`的方式去格式化输出一个动态数组`Vec`,以期给用户提供更加清晰可读的内容,那么就需要为`Vec`实现`Display`特征,但是这里有一个问题:`Vec`类型定义在标准库中,`Display`亦然, 这时就可以祭出大杀器`newtype`来解决: ```rust @@ -56,12 +56,12 @@ impl Add for Meters { } } fn main() { - let d = calculate_distance(Meters(10), Meters(20)); - println!("{}",d); + let d = calculate_distance(Meters(10), Meters(20)); + println!("{}",d); } fn calculate_distance(d1: Meters,d2: Meters) -> Meters { - d1 + d2 + d1 + d2 } ``` @@ -79,7 +79,7 @@ struct Meters(u32); fn main() { let i: u32 = 2; - assert_eq!(i.pow(2),4); + assert_eq!(i.pow(2),4); let n = Meters(i); // 下面的代码将报错,因为`Meters`类型上没有`pow`方法