结构标准::细胞::参考单元格

1.0.0·来源·
pub结构RefCell
哪里T: ?大小,
{/*私有字段*/}
展开描述

具有动态检查借用规则的可变内存位置

请参阅模块级文档了解更多信息。

启动位置§

来源§

impl<T>参考单元格<T>

1.0.0(常数:1.24.0)·来源

公共常数fn新的(值:T)->参考单元格<T>

创建新的参考单元格包含价值.

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);
运行
1.0.0(常数:不稳定的)·来源

发布fn内部输入(_I)(自身)->T

消耗参考单元格,返回包装后的值。

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);五=c.into_iner();
运行
1.24.0·来源

发布fn代替(自我,t:t)->t

用新值替换包装后的值,返回旧值,没有去初始化任何一个。

此函数对应于标准::内存::替换.

§恐慌

如果该值当前被借用,则会引起恐慌。

§示例
使用标准::单元格::RefCell;cell=RefCell::新建(5);旧值=单元格替换(6);资产_ eq!(旧值,5);assert_eq(请求)!(单元格,RefCell::新建(6));
运行
1.35.0·来源

发布fn替换为<F> (自我,F:F)->T
哪里传真:FnOnce公司(&多吨)->T,

用从中计算的新值替换已包装的值(f),返回旧的值,而没有取消初始化任何一个。

§恐慌

如果该值当前被借用,则会引起恐慌。

§示例
使用标准::单元格::RefCell;cell=参照单元格::新建(5);旧值=cell.replace_with(|&多用途终端旧|旧+1);资产_ eq!(旧值,5);资产_ eq!(单元格,RefCell::新建(6));
运行
1.24.0·来源

发布fn互换(自我,其他:(&S)&参考单元格<T> )

交换的包装值自己包装值为其他,没有去初始化任何一个。

此函数对应于标准::内存::交换.

§恐慌

如果其中一个值参考单元格当前被借用,或如果自己其他指向相同的参考单元格.

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);d=参考单元格::新建(6);c.掉期(&d) ;资产_ eq!(c,RefCell::新(6));资产_ eq!(d,RefCell::新建(5));
运行
来源§

impl<T>参考单元格<T>
哪里T: ?大小,

1.0.0·来源

发布fn(自我)->裁判<'_,T>

永久借用包装后的值。

借入持续到归还裁判退出范围。多个不可变的借方可以同时取出。

§恐慌

如果值当前是可变借用的,则会引起恐慌。对于非密码变体,请使用try_borrow(尝试借用).

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);borrowed_five=c.借用();borrowed_five2=c.借用();
运行

恐慌的一个例子:

使用标准::单元格::RefCell;c=参考单元格::新建(5);m=c.借_出();b=c.借();//这引起了恐慌
运行
1.13.0·来源

发布fntry_borrow(尝试借用)(自我)->结果<裁判<'_,T>,借用错误>

不可变地借用包装后的值,如果值当前可变,则返回错误借来的。

借入持续到归还裁判退出范围。多个不可变借用可以是同时取出。

这是.

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);{m=c.借_出();断言!(c.try_borrow().is_err());}{m=c.借用();断言!(c.try_borrow().is_ok());}
运行
1.0.0·来源

发布fn借_出(自我)->参考静音<'_,T>

可变地借用包装后的值。

借入持续到归还参考静音或全部参考静音s派生从it退出范围。当此借用为激活。

§恐慌

如果该值当前被借用,则会引起恐慌。对于非密码变体,请使用try_borrow_mut(尝试借用).

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(“你好”.to_owned());*c.borrow_mut()=“你好”.to_owned();资产_ eq!(&*c.借方(),“你好”);
运行

恐慌的例子:

使用标准::单元格::RefCell;c=参考单元格::新建(5);m=c.借用();b=c.借_出();//这引起了恐慌
运行
1.13.0·来源

发布fntry_borrow_mut(尝试借用)(自我)->结果<参考静音<'_,T>,BorrowMutError(借用静音错误)>

可变地借用包装后的值,如果当前借用了该值,则返回一个错误。

借入持续到归还参考静音或全部参考静音s派生从it退出范围。当此借用为激活。

这是借_出.

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);{m=c.借用();断言!(c.try_borrow_mut().is_err());}断言!(c.try_borrow_mut().is_ok());
运行
1.12.0·来源

发布fnas_ptr(自动变速器)(自我)->*多吨

返回指向此单元格中基础数据的原始指针。

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);ptr=c.as_ptr();
运行
1.11.0·来源

发布fn获取(_M)(多个自我)->&多吨

返回对基础数据的可变引用。

因为这种方法借用了参考单元格可变地,它是静态保证的不存在对底层数据的借用。固有的动态检查在里面借_出和大多数其他方法参考单元格因此没有必要。

只有在以下情况下才能调用此方法参考单元格可以可变地借用,这通常只是在参考单元格已创建。在这些情况下,跳过上述动态借用检查可能会产生更好的人机工程学和运行时性能。

在大多数情况下参考单元格被使用时,不能一成不变地借用。使用借_出以获得对底层数据的可变访问。

§示例
使用标准::单元格::RefCell;多用途终端c=参考单元格::新建(5);*c.获取_输出()+=1;资产_ eq!(c,RefCell::新(6));
运行
来源

发布fn撤消泄漏(_L)(多个自我)->&多吨

🔬这是一个仅限夜间使用的实验API。(单元格_泄漏 #69099)

解除泄漏防护装置对借用状态的影响参考单元格.

此调用类似于获取(_M)但更专业。它借钱参考单元格可变地确保不存在借用,然后重置状态跟踪共享借用。这是相关的如果有的话裁判参考静音借款已被泄露。

§示例
#![功能(cell_leak)]使用标准::单元格::RefCell;多用途终端c=参考单元格::新建(0);std::mem::forget(c.borrow_mut());断言!(c.try_borrow().is_err());c.undo_leak();断言!(c.try_borrow().is_ok());
运行
1.37.0·来源

发布不安全fn尝试借用无防护(自我)->结果<&T型,借用错误>

不可变地借用包装后的值,如果值为目前易变借用。

§安全

不同于参考单元格::借用,此方法不安全,因为它不安全返回a裁判从而使借用标志保持不变。可突变的借用参考单元格而此方法返回的引用活着是未定义的行为。

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);{m=c.借_出();断言!(不安全的{c.try_borrow_unguarded()}.is_err());}{m=c.借用();断言!(不安全的{c.try_borrow_unguarded()}.is_ok());}
运行
来源§

impl<T>参考单元格<T>
哪里电话:违约,

1.50.0·来源

发布fn(自我)->T

取包装值,离开默认值::Default()取而代之。

§恐慌

如果该值当前被借用,则会引起恐慌。

§示例
使用标准::单元格::RefCell;c=参考单元格::新建(5);五=c.take();资产_ eq!(五、,5);资产_ eq!(c.into_iner(),0);
运行

特性实现§

1.0.0·来源§

impl<T>克隆对于参考单元格<T>
哪里电话:克隆,

来源§

fn公司克隆(自我)->参考单元格<T>

§恐慌

如果值当前是可变借用的,则会引起恐慌。

来源§

fn公司克隆来自(多个自身,源(&M):&参考单元格<T> )

§恐慌

恐慌,如果来源当前是可变借用的。

1.0.0·来源§

impl<T>调试对于参考单元格<T>
哪里电话:调试+ ?大小,

来源§

fn公司柔性制造技术(&self,f:&mut格式化程序<'_>) ->结果<(),错误>

使用给定的格式化程序格式化值。阅读更多信息
1.0.0·来源§

impl<T>违约对于参考单元格<T>
哪里电话:违约,

来源§

fn公司违约() ->参考单元格<T>

创建一个参考单元格<T>,使用违约T的值。

1.12.0·来源§

impl<T>发件人<T> 的参考单元格<T>

来源§

fn公司(t:t)->参考单元格<T>

创建新的参考单元格<T>包含给定值。

1.10.0·来源§

impl<T>订单对于参考单元格<T>
哪里电话:订单+ ?大小,

来源§

fn公司化学机械抛光(自我,其他:(&S)&参考单元格<T> )->订购

§恐慌

如果值位于参考单元格当前是可变借用的。

1.0.0·来源§

impl<T>部分等式对于参考单元格<T>
哪里电话:部分等式+?大小,

来源§

fn公司等式(自我,其他:(&S)&参考单元格<T> )->布尔

§恐慌

如果值位于参考单元格当前是可变借用的。

1.0.0·来源§

fn公司(自我,其他:(&S)&Rhs公司) ->布尔

此方法测试=。默认实现几乎总是足够了,没有很好的理由不应该被覆盖。
1.10.0·来源§

impl<T>党派命令对于参考单元格<T>
哪里电话:部分订单+ ?大小,

来源§

fn公司部分_cmp(自我,其他:(&S)&参考单元格<T> )->选项<订购>

§恐慌

如果值位于参考单元格当前是可变借用的。

来源§

fn公司书信电报(自我,其他:(&S)&参考单元格<T> )->布尔

§恐慌

如果值位于参考单元格当前是可变借用的。

来源§

fn公司(自我,其他:(&S)&参考单元格<T> )->布尔

§恐慌

如果值位于参考单元格当前是可变借用的。

来源§

fn公司通用技术(自我,其他:(&S)&参考单元格<T> )->布尔

§恐慌

如果值位于参考单元格当前是可变借用的。

来源§

fn公司通用电气公司(自我,其他:(&S)&参考单元格<T> )->布尔

§恐慌

如果值位于参考单元格当前是可变借用的。

来源§

impl<T,U>强制未大小<参考单元格<U> >用于参考单元格<T>
哪里电话:强制未调整大小<U> ,

1.2.0·来源§

impl<T>等式对于参考单元格<T>
哪里电话:等式+ ?大小,

1.0.0·来源§

impl<T>发送对于参考单元格<T>
哪里电话:发送+ ?大小,

1.0.0·来源§

impl<T>!同步对于参考单元格<T>
哪里T: ?大小,

自动特征实现§

§

impl<T>!冻结对于参考单元格<T>

§

impl<T>!参考UnwindSafe对于参考单元格<T>

§

impl<T>取消固定对于参考单元格<T>
哪里电话:取消固定+ ?大小,

§

impl<T>UnwindSafe软件对于参考单元格<T>
哪里电话:UnwindSafe软件+ ?大小,

一揽子实施§

来源§

impl<T>任何对于T
哪里T: '静态+?大小,

来源§

fn公司类型id(自我)->类型Id

获取类型Id属于自己.阅读更多信息
来源§

impl<T>借款<T> 对于T
哪里T: ?大小,

来源§

fn公司(自我)->&T型

永远从拥有的价值中借入。阅读更多信息
来源§

impl<T>借用静音<T> 对于T
哪里T: ?大小,

来源§

fn公司借_出(多个自我)->&多吨

可变地借用自有价值。阅读更多信息
来源§

impl<T>发件人<!>对于T

来源§

fn公司(电话:!)->温度

从输入类型转换为此类型。
来源§

impl<T>发件人<T> 对于T

来源§

fn公司(t:t)->t

返回未更改的参数。

来源§

impl<T,U><U> 对于T
哪里用户:发件人<T> ,

来源§

fn公司进入之内(自身)->U

电话U: :来自(自身).

也就是说,这个转换是任何实现发件人<T> 对于U选择做。

来源§

impl<T>ToOwned公司对于T
哪里电话:克隆,

§

类型拥有=T

获得所有权后得到的类型。
来源§

fn公司拥有(_O)(自我)->T

通常通过克隆从借用的数据中创建拥有的数据。阅读更多信息
来源§

fn公司克隆到(自我,目标(&S):&多吨)

使用借用的数据替换拥有的数据,通常是通过克隆。阅读更多信息
来源§

impl<T,U>TryFrom(尝试发件人)<U> 对于T
哪里用户:<T> ,

§

类型错误=无懈可击

发生转换错误时返回的类型。
来源§

fn公司尝试(_F)(值:U)->结果<T,<T asTryFrom(尝试发件人)<U> >::错误>

执行转换。
来源§

impl<T,U>尝试进入<U> 对于T
哪里用户:TryFrom(尝试发件人)<T> ,

§

类型错误=<U为TryFrom(尝试发件人)<T> >::错误

发生转换错误时返回的类型。
来源§

fn公司尝试进入(自身)->结果<U,<U为TryFrom(尝试发件人)<T> >::错误>

执行转换。