可变索引 (Mutable indexing)
Index 只允许只读访问,不允许你修改取出的值。
IndexMut
如果你想允许可变性,需要实现 IndexMut 特质。
// 略简化
pub trait IndexMut<Idx>: Index<Idx>
{
// 必须实现的方法
fn index_mut(&mut self, index: Idx) -> &mut Self::Output;
}
IndexMut 只能在类型已经实现了 Index 的前提下实现,因为它解锁的是一项 额外 能力。
原文链接:英文原文