gpt4 book ai didi

rust - 我可以在 Rust 中将不可变借用标记为独占吗?

转载 作者:行者123 更新时间:2023-12-04 14:06:52 25 4
gpt4 key购买 nike

我有一个数据结构,有点像 RwLock。它不是可重入的,但实际的锁定机制是一个 const 函数。有什么方法可以将此函数标记为“exclusive_borrow”,而无需将其切换为可变函数。这样,对“读取”的多次调用将在编译时被捕获,而不是 panic 。

struct MyRwLock<T> {
t: T,
}

impl MyRwLock {
// Works fine, but doesn't enforce on compile time that there is
// only 1 Guard.
pub fn read(&self) -> ReadGuard<'_, T> { ... }

// Enforces only 1 ReadGuard at compile time, but unnecessarily
// requires MyMutex to be mutable to read.
pub fn mut_read(&mut self) -> ReadGuard<'_, T> { ... }
}

最佳答案

&mut 有点用词不当。它实际上意味着独占 引用,而不是可变的。如果那是你想要的,那么使用 &mut 是正确的。

事实上,有一个proposal to rename &mut回到 2014 年。它从未实现,但你可能偶尔会听到 "mutpocalypse" 的耳语今天。

关于rust - 我可以在 Rust 中将不可变借用标记为独占吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67859214/

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