是否可以使用数组中的引用来指定开始/结束位置,从而创建数组(或其他任何内容)的切片?
例如,假设我正在遍历一个数组,并且当我到达某个元素时,我想调用一个函数,将当前元素到结尾的数组切片传递给该函数:
let list = [1, 2, 3, 4, 5, 6];
for item in &list {
if passes_test(item) {
process_remainder(&list[item..]); // does not compile
}
}
对于从C语言过来的开发者,这似乎是一件很自然的事情 - 引用只是一个指针,而切片只是一对指针(或指针和长度),并且获取多个引用应该没问题,因为它们都不可变。但是我找不到正确的语法来实现它。
或者,是否可以获得给定引用的索引(就像在C中使用指针算术一样),或者我只需要妥协并使用enumerate来生成迭代时的索引和引用?