在C++中,我可以多次获得迭代器的当前值

int main() {
    std::string s = "abcd";
    auto iter = s.begin();
    std::cout << *iter << std::endl; // a
    std::cout << *iter << std::endl; // a
}

我能在《铁 rust 》里做同样的事吗? 是否可以在不切换到下一个位置的情况下获得迭代器值:

fn main() {
    let mut s = String::from("abcd");
    let mut iter = s.chars();
    println!("{:?}", iter.next()); // get Some(a) and switch to the next position    
}

推荐答案

我的解决方案是:

fn main() {
    let mut s = String::from("abcd");
    let mut iter = s.chars().peekable();
    println!("{:?}", iter.peek()); // get Some(a)    
    println!("{:?}", iter.peek()); // get Some(a)    
}

Rust相关问答推荐

rust 蚀将动力特性浇到混凝土 struct 上是行不通的

有没有办法模仿对象安全克隆?

如何将`Join_all``Vec<;Result<;Vec<;Foo&>;,Anywhere::Error&>;`合并到`Result<;Vec<;Foo&>;,Anywhere::Error&>;`

具有对同一类型的另一个实例的可变引用的

如何实现泛型枚举的`Serde::Desialize`特性

在决定使用std::Sync::Mutex还是使用Tokio::Sync::Mutex时,操作系统线程调度是考虑因素吗?

使用Box优化可选的已知长度数组的内存分配

函数内模块的父作用域的访问类型

如何模拟/创建ReqData以测试Actix Web请求处理程序?

使用Py03从Rust调用Python函数时的最佳返回类型

我如何制作一个变异迭代器来锁定内部数据直到删除?

如果变量本身不是None,如何返回;如果没有,则返回None&Quot;?

如何在Rust中缩短数组

信号量释放后 Rust 输出挂起线程

Rust 重写函数参数

我什么时候应该使用特征作为 Rust 的类型?

Rust 引用元组和引用元组

Rust 中函数的类型同义词

在 Rust 中返回对枚举变体的引用是个好主意吗?

在传输不可复制的值时实现就地枚举修改