当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust TryIter用法及代码示例


本文简要介绍rust语言中 Struct std::sync::mpsc::TryIter 的用法。

用法

pub struct TryIter<'a, T: 'a> { /* fields omitted */ }

一个迭代器,它尝试为 Receiver 产生所有挂起的值,由 try_iter 创建。

None 将在没有剩余未决值或相应通道已挂起时返回。

这个迭代器永远不会阻塞调用者以等待数据可用。相反,它将返回 None

例子

use std::sync::mpsc::channel;
use std::thread;
use std::time::Duration;

let (sender, receiver) = channel();

// Nothing is in the buffer yet
assert!(receiver.try_iter().next().is_none());
println!("Nothing in the buffer...");

thread::spawn(move || {
    sender.send(1).unwrap();
    sender.send(2).unwrap();
    sender.send(3).unwrap();
});

println!("Going to sleep...");
thread::sleep(Duration::from_secs(2)); // block for two seconds

for x in receiver.try_iter() {
    println!("Got: {}", x);
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Struct std::sync::mpsc::TryIter。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。