如何获得一个切片,其中包含除第N个元素以外的所有元素?

问题描述

我想从包含第N个元素之外的所有元素的向量中获取引用的一部分。在我的特定情况下,我希望对第N个元素进行可变引用,对所有其他元素进行不可变引用。

我有一些有效的方法,但是它导致一些混乱的代码。

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]

是否有一些库或更干净的代码可以做到这一点?

作为参考,目的是修改对象相对于所有其他对象的位置。该循环充当游戏中基本的碰撞检测系统。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...