gpt4 book ai didi

rust - RandomAccessIterators 是否应该在调用 idx() 时改变自己?

转载 作者:行者123 更新时间:2023-11-29 08:21:42 25 4
gpt4 key购买 nike

特征 RandomAccessIterator 定义了以下函数:

fn idx(&mut self, index: uint) -> Option<A>;

由于 self 是可变的,我希望调用 idx() 来改变迭代器,例如it.idx(3) 将使迭代器前进三个元素。然而,这不是 slice::Items 实现目前所做的; it.idx(3) 给出当前元素的第三个元素,但不推进或改变迭代器。

所以我的问题是:实现 RandomAccessIterator 的迭代器是否应该在调用 idx() 时改变自身?如果不是,为什么函数需要对 self 的可变引用?

最佳答案

不,它不应该以 .idx 前进。该方法使用 &mut self 就像其他迭代器方法一样,对于 reasons outlined here.简而言之,它允许您在迭代器结构中调用闭包字段。

关于rust - RandomAccessIterators 是否应该在调用 idx() 时改变自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com