如何解决如何获得一个切片,其中包含除第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 举报,一经查实,本站将立刻删除。