API 指南
函数概览
| 函数 | 签名 | 说明 |
|---|---|---|
input | fn input() -> String | 从标准输入读取一行并返回 |
input_num | fn input_num<F: FromStr>() -> F | 从标准输入读取一行并解析为指定类型 |
input()
从标准输入读取一行字符串,去除首尾空白后返回。
签名
rust
pub fn input() -> String行为
- 从
stdin读取直到遇到换行符 - 去除首尾空白字符(空格、换行等)
- 返回处理后的
String
Panics
当标准输入读取失败时 panic。
input_num()
从标准输入读取一行,尝试解析为指定的目标类型。
签名
rust
pub fn input_num<F: FromStr>() -> F泛型约束
F 必须实现 FromStr trait。Rust 标准库中实现了 FromStr 的常见类型包括:
- 整数:
i8,i16,i32,i64,i128,isize - 无符号整数:
u8,u16,u32,u64,u128,usize - 浮点数:
f32,f64 - 布尔:
bool - 其他:
char,String,IpAddr,SocketAddr等
行为
- 内部调用
input()获取字符串 - 对字符串调用
parse::<F>()进行解析 - 解析成功则返回,失败则 panic
Panics
- 标准输入读取失败时 panic
- 输入字符串无法解析为目标类型时 panic
注意事项
- 标准输入依赖:两个函数都从
io::stdin()读取,因此无法在常规的#[test]中直接测试输入逻辑。 - 阻塞行为:函数会阻塞当前线程直到读取到换行符(或 EOF)。
- 空白处理:
input()会 trim 首尾空白,input_num()基于input()因此同样会 trim,这意味着带空白的数字(如" 42 ")可以正常解析。