mirror of https://github.com/KaiserY/trpl-zh-cn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
930 B
930 B
Deref
Trait 允许通过引用访问数据
ch15-02-deref.md
commit 3f2a1bd8dbb19cc48b210fc4fb35c305c8d81b56
第一个智能指针相关的重要 trait 是Deref
,它允许我们重载*
,解引用运算符(不同于乘法运算符和全局引用运算符)。重载智能指针的*
方便访问其后的数据,在这个部分的稍后介绍解引用强制多态时我们会讨论方便的意义。
第八章的哈希 map 的“根据旧值更新一个值”部分简要的提到了解引用运算符。当时有一个可变引用,而我们希望改变这个引用所指向的值。为此,首先我们必须解引用。这是另一个使用i32
值引用的例子:
let mut x = 5;
{
let y = &mut x;
*y += 1
}
assert_eq!(6, x);
我们使用*y
来访问可变引用y
所指向的数据,