我正在学习一门使用自动化测试的课程.输入以标准输入的形式给出,然后将答案打印到标准输出.
由于输入通常采用由空格分隔的相同类型的一组值的形式,并且我不想一次又一次地编写相同的代码,所以我正在try 编写一个函数来将输入解析为给定类型的向量.然而,我的问题是我想使用泛型来指定函数将try 解析数据的类型.我不知道该怎么做.我当前的代码是:
fn std_in_to_vec(split_on: &str) -> std::io::Result<Vec<T>> {
// read in stdin line
let mut stdin_buffer = String::new();
std::io::stdin().read_line(&mut stdin_buffer).expect("could not read stdin");
// split and read to vec
let input: Vec<&str> = stdin_buffer.trim().split(" ").collect();
// attempt to parse as type
let mut parsed: Vec<T> = Vec::with_capacity(input.len());
for val in input {
parsed.push(val.parse::<T>().expect("could not parse as type"));
}
Ok(parsed)
}
我怎么才能让这件事奏效呢?