mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2024-12-26 21:00:24 +08:00
Update Ch15
This commit is contained in:
parent
79967cd455
commit
da6d4ced48
@ -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 了。这种解引用强制转换,还实现更多既可在引用,亦可在灵巧指针上起作用代码的编写。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user