gpt4 book ai didi

rust - 使用 skip_while() 时为 "cannot move out of borrowed content"

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

我在使用 std::iter::Peekable 时遇到了问题。为什么以下代码无法编译?

// rustc 1.7.0-nightly (b4707ebca 2015-12-27)

use std::iter::*;

struct Foo<'a> {
chars: Peekable<Chars<'a>>,
}

impl<'a> Foo<'a> {
fn foo(&mut self) {
self.chars.next(); // Ok
self.chars.skip_while(|c| true); // error: cannot move out of borrowed content [E0507]
}
}

最佳答案

skip_while以 self 为值(value)。但是 chars 不能移动,因为它仍然被 &mut self 可变借用。您可以使用 by_ref以确保 skip_while 获取的值是对包装器的引用。

self.chars.by_ref().skip_while(|c| true);

关于rust - 使用 skip_while() 时为 "cannot move out of borrowed content",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530567/

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