gpt4 book ai didi

rust - Arcs 中的元组如何用引用解构?

转载 作者:行者123 更新时间:2023-11-29 08:20:05 24 4
gpt4 key购买 nike

<分区>

我正在查看 Condvar example并且很好奇元组 pairpair2 是如何被解构的:

let pair = Arc::new((Mutex::new(false), Condvar::new()));
let pair2 = pair.clone();
// ...

thread::spawn(move|| {
let &(ref lock, ref cvar) = &*pair2;
// ...
}

不是 ArcDeref implementation返回对内部数据的引用?但是从 pair2 中删除 &:

let &(ref lock, ref cvar) = *pair2;

给出一个编译器错误:

11 |     let &(ref lock, ref cvar) = *pair2;
| ^^^^^^^^^^^^^^^^^^^^^ expected tuple, found reference
|
= note: expected type `(std::sync::Mutex<bool>, std::sync::Condvar)`
found type `&_`

这似乎暗示 *pair2 返回元组而不是引用。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com