可变索引
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
,因为它解锁了额外的修改能力。