Merge pull request #483 from Rustln/main

Fixed `Deref` link for `advance-trait.md`
pull/487/head
Sunface 3 years ago committed by GitHub
commit 0b98c6a3e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -384,7 +384,7 @@ fn main() {
类似的,任何数组上的方法,你都无法直接调用,需要先用 `self.0` 取出数组,然后再进行调用。
当然,解决办法还是有的,要不怎么说 Rust 是极其强大灵活的编程语言Rust 提供了一个特征叫 [`Deref`](../../traits/deref.md),实现该特征后,可以自动做一层类似类型转换的操作,可以将 `Wrapper` 变成 `Vec<String>` 来使用。这样就会像直接使用数组那样去使用 `Wrapper`,而无需为每一个操作都添加上 `self.0`
当然,解决办法还是有的,要不怎么说 Rust 是极其强大灵活的编程语言Rust 提供了一个特征叫 [`Deref`](../../advance/smart-pointer/deref.md),实现该特征后,可以自动做一层类似类型转换的操作,可以将 `Wrapper` 变成 `Vec<String>` 来使用。这样就会像直接使用数组那样去使用 `Wrapper`,而无需为每一个操作都添加上 `self.0`
同时,如果不想 `Wrapper` 暴漏底层数组的所有方法,我们还可以为 `Wrapper` 去重载这些方法,实现隐藏的目的。

Loading…
Cancel
Save