Update Ch15

This commit is contained in:
Unisko PENG 2023-05-08 17:51:48 +08:00
parent 79967cd455
commit da6d4ced48

View File

@ -405,7 +405,7 @@ Rust 将 `*` 运算符替换为对 `deref` 方法的调用,然后是普通的
*解引用强制转换deref coercion* 将对实现了 `Deref` 特质的某种类型的引用,转换为对另一类型的引用。例如,解引用强制转换可以将 `&String` 转换为 `&str`,因为 `String` 实现了 `Deref`,所以他会返回 `&str`。解引用强制转换是 Rust 对函数和方法的参数执行的一种便利,只对实现 `Deref` 特质的类型起作用。当我们把对某一特定类型的值的引用作为参数传递给函数或方法时,它就会自动发生,而该参数与函数或方法定义中的参数类型并不匹配。一系列对 `Deref` 方法的调用将我们提供的类型转换为参数需要的类型。
> **:在面向对象编程语言 Java 中,类似的特性叫 ["自动装箱"](https://java.xfoss.com/Ch10_Numbers_and_Statics_Numbers_Matter.html#自动装箱模糊原生值与对象之间的界线)。
> 注:在面向对象编程语言 Java 中,类似的特性叫 ["自动装箱"](https://java.xfoss.com/Ch10_Numbers_and_Statics_Numbers_Matter.html#自动装箱模糊原生值与对象之间的界线)。
为了程序员们在编写函数与方法调用时,无需使用 `&``*` 添加许多的那些显示引用和解引用,解引用强制转换特性就这样被添加到 Rust 了。这种解引用强制转换,还实现更多既可在引用,亦可在灵巧指针上起作用代码的编写。