我有&[&mut Foo]
。我可以在这个切片中调用Foo的&mut self
-方法吗?
不可以。
不可变引用被正式称为"共享"引用:您可以对同一对象有多个共享引用。另一方面,可变引用是互斥的,因此不允许对一个对象进行多个可变引用。这些规则旨在帮助避免数据竞争。
一旦一个对象位于共享引用后面,它就不可变了。否则,您可以有效地对单个对象进行多个可变引用,这将导致数据竞争。
如果您真的想要这样的东西,请查看模块std::cell
的文档。