我正在使用Kuchiki解析一些 HTML 并使用hyper发出 HTTP 请求,以通过scoped_threadpool对结果进行并发操作。
我选择并迭代列表。我根据列表的数量决定要在线程池中分配的线程数:
let listings = document.select("table.listings").unwrap();
let mut pool = Pool::new(listings.count() as u32);
pool.scoped(|scope| {
for listing in listings {
do_stuff_with(listing);
}
});
当我尝试这样做时,我得到capture of moved value: listings
. listings
is kuchiki::iter::Select<kuchiki::iter::Elements<kuchiki::iter::Descendants>>
,这是不可复制的——所以我既没有得到隐式克隆也没有得到显式.clone
.
在池中,我可以再做document.select("table.listings")
一次,它会起作用,但这对我来说似乎没有必要,因为我已经用它来获得计数。我也不需要listings
在循环之后。
我有什么办法可以在闭包中使用不可复制的值吗?