有没有办法通过不可变切片中的可变引用来改变对象?

我有&[&mut Foo]。我可以&mut self在这个切片中调用-method of Foo 吗?

回答

你不能。

不可变引用正式称为“共享”引用:您可以对同一个对象拥有多个共享引用。另一方面,可变引用是独占的,因此不允许对一个对象进行多个可变引用。这些规则旨在帮助避免数据竞争。

一旦对象位于共享引用之后,它就是不可变的。否则,您可以有效地对单个对象有多个可变引用,这会导致数据竞争。

如果您真的想要这样的东西,请查看 module 的文档std::cell


以上是有没有办法通过不可变切片中的可变引用来改变对象?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>