我想从包含除N
第 th 元素之外的所有元素的向量中获取引用片段。在我的具体情况下,我想要对N
第 th 个元素的可变引用和对所有其他元素的非可变引用。
我有一些有用的东西,但它会导致一些混乱的代码。
let len = vector.len();
for index in 0..len {
let (before, after_inclusive) = vector.split_at_mut(index);
let (element_slice, after) = after_inclusive.split_at_mut(1);
let element = &mut element_slice[0];
let others = [before, after].concat();
element.operation(&others);
}
理想情况下,我想要一个像这样工作的函数:
let (element, others) = vector.extract_split(index);
或者也许是一些模式高级切片语法:
let others = vector[0..index, (index+1)..len]
是否有一些库或更简洁的代码可以做到这一点?
作为参考,目的是修改一个对象相对于所有其他对象的位置。循环充当游戏中的基本碰撞检测系统。