當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust once用法及代碼示例


本文簡要介紹rust語言中 Function core::iter::once 的用法。

用法

pub fn once<T>(value: T) -> Once<T>

創建一個隻產生一次元素的迭代器。

這通常用於將單個值調整為其他類型迭代的 chain() 。也許您有一個幾乎涵蓋所有內容的迭代器,但您需要一個額外的特殊情況。也許您有一個適用於迭代器的函數,但您隻需要處理一個值。

例子

基本用法:

use std::iter;

// one is the loneliest number
let mut one = iter::once(1);

assert_eq!(Some(1), one.next());

// just one, that's all we get
assert_eq!(None, one.next());

與另一個迭代器鏈接在一起。假設我們要遍曆 .foo 目錄的每個文件,還要遍曆配置文件 .foorc

use std::iter;
use std::fs;
use std::path::PathBuf;

let dirs = fs::read_dir(".foo").unwrap();

// we need to convert from an iterator of DirEntry-s to an iterator of
// PathBufs, so we use map
let dirs = dirs.map(|file| file.unwrap().path());

// now, our iterator just for our config file
let config = iter::once(PathBuf::from(".foorc"));

// chain the two iterators together into one big iterator
let files = dirs.chain(config);

// this will give us all of the files in .foo as well as .foorc
for f in files {
    println!("{:?}", f);
}

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function core::iter::once。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。