Fixed link id

This commit is contained in:
Unisko PENG 2023-04-10 10:19:56 +08:00
parent efe643cfc3
commit 83369dfb54
2 changed files with 2 additions and 2 deletions

View File

@ -400,7 +400,7 @@ Rust 使用到 `deref` 方法的一个调用,以及接着一个普通的解引
*解引用强制转换deref coercion* 会将到实现了 `Deref` 特质的某种类型的引用,转换为到另一类型的引用。比如,由于 `String` 实现了 `Deref` 特质,因此对 `&String` 解引用强制转换,就会返回 `&str`,因此就可以把 `&String` 解引用强制转换为 `&str`。解引用强制转换,属于 Rust 在函数与方法的参数上,所执行的一项便利措施,并只在那些实现了 `Deref` 特质的类型上起作用。在将到特定类型值的引用,作为参数传递给某个函数或方法,而所传递的引用,并不与那个函数或方法定义中的参数类型想匹配时,这种解引用强制转换就会发生。这时到 `deref` 方法的一系列调用,就会把所提供的类型,转换为函数或方法定义中那些参数所需的类型。
> *注*:在面向对象编程语言 Java 中,类似的特性叫 ["自动装箱"](https://java.xfoss.com/bian-yi-qi-dui-yu-zhan/ch10_numbers_and_statics_numbers_matter#autoboxing)。
> *注*:在面向对象编程语言 Java 中,类似的特性叫 ["自动装箱"](https://java.xfoss.com/Ch10_Numbers_and_Statics_Numbers_Matter.html#%E8%87%AA%E5%8A%A8%E8%A3%85%E7%AE%B1%E6%A8%A1%E7%B3%8A%E5%8E%9F%E7%94%9F%E5%80%BC%E4%B8%8E%E5%AF%B9%E8%B1%A1%E4%B9%8B%E9%97%B4%E7%9A%84%E7%95%8C%E7%BA%BF)。
为了程序员们在编写函数与方法调用时,无需使用 `&``*` 添加许多的那些显示引用和解引用,解引用强制转换特性就这样被添加到 Rust 了。这种解引用强制转换,还实现更多既可在引用,亦可在灵巧指针上起作用代码的编写。

View File

@ -119,7 +119,7 @@ impl AveragedCollection {
**Using Trait Objects That Allow for Values of Different Types**
> **注**:这类似于 Java 语言中解决死亡钻石问题DDD的 [接口](https://java.xfoss.com/ji-cheng-he-duo-tai-ji-zhi/ch08_interfaces_and_abstract_classes#interface_rescue)。
> **注**:这类似于 Java 语言中解决死亡钻石问题DDD的 [接口](https://java.xfoss.com/Ch08_Interfaces_and_Abstract_Classes.html#%E4%BD%BF%E7%94%A8%E6%8E%A5%E5%8F%A3%E6%9D%A5%E6%8B%AF%E6%95%91)。
在第 8 章中,咱们就提到过矢量值的一个局限,便是他们只能存储一种类型的元素。在清单 8-9 中咱们创建出了一种变通方案,其中定义了有着分别保存整数、浮点数与文本变种的 `SpreadsheetCell` 枚举。这就意味着咱们可在各个单元格中存储不同类型的数据,而仍旧有了表示这些单元格所组成行的一个矢量值。这对于在咱们的代码被编译时,就已经清楚这些可交换项目,为固定类型集的情况,这确实是一种相当不错的解决办法。