1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2015年8月5日 |
---|
#19 in #input-stream
21 每月下载次数
11KB
126 行
scan
Rust 的标记/解析实用工具
允许将输入流中的空白分隔标记解析为任何实现 FromStr
的类型。
示例
extern crate scan;
use scan::Scan;
fn main() {
let mut scanner = scan::from_stdin();
let int = scanner.next::<i32>().unwrap();
let int2: i32 = scanner.next().unwrap();
println!("Integer: {}", int);
println!("Integer 2: {}" int2);
}
获取
这个包可以通过 crates.io 获取。需要注意的是,这个包需要 nightly rust,因为 io
模块的不稳定性。
文档
文档托管在 这里。
lib.rs
:
这个包旨在帮助从输入流(或任何其他实现 Read 的结构)中解析值。它通过提供一个 trait,Scan
来实现,可以使用它来标记和解析输入。
这个包还提供了一个 Scan
的实现,Scanner
(struct.Scanner.html)。
快速开始
只需在项目的顶部包含 extern crate scan
,将 scan = "0.1.0"
添加到项目依赖中,您就可以开始了!
use scan::Scan;
let mut scanner = scan::from_stdin();
let my_int = scanner.next::<i32>();
match my_int {
Ok(int) => println!("Integer: {}", int),
Err(e) => println!("Error: {}", e),
}
功能
这个包提供了一个内置的 Scan 实现:Scanner。Scanner 可以从任何实现 read 的结构体创建,并提供了一些辅助函数,可以简洁地创建文件或标准输入的 Scanner。
默认情况下,Scanner 将空白(空格、制表符、换行符和回车符)视为要解析的分隔符;然而,您也可以提供不同的分隔符集。
Scan 允许解析任何实现 std::str::FromStr
的结构体。这包括 Rust 语言中大多数内置类型,但您也可以为任何自定义类型实现 FromStr。