问题描述
我想从包含第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 (将#修改为@)