可变索引

Index 只提供了只读访问权限,并不允许你修改获取的值。

IndexMut

如果你想允许可变性,就需要实现 IndexMut 特质。

#![allow(unused)] fn main() { // 略微简化的版本 pub trait IndexMut<Idx>: Index<Idx> { // 必须实现的方法 fn index_mut(&mut self, index: Idx) -> &mut Self::Output; } }

只有当类型已经实现了 Index 特质后,才能实现 IndexMut,因为它解锁了额外的修改能力。