提问人:thefrollickingnerd 提问时间:11/3/2023 更新时间:11/3/2023 访问量:42
使用闭包解析两列字母
Using closures to parse two columns of letters
问:
我有一个函数,它对字符串的迭代器进行操作,目的是能够接收字符串,例如并将其转换为.
匹配函数是A X
(1, 2)
fn convert_throw(c: char) -> i32 {
match c {
'A' | 'Y' => 1,
'B' | 'X' => 2,
'C' | 'Z' => 3,
_ => panic!("Unexpected symbol")
}
}
执行处理的迭代器函数是
fn read_throw_pairs(i: impl Iterator<Item = String>) -> (i32, i32) {
i
.map(|string| -> Vec<i32> {
string.split(" ")
.take(2)
.map(|element| -> i32 {convert_throw(element.chars().next().expect("Should be char"))})
.collect()
})
.map(|mut item| (item.swap_remove(0), item.swap_remove(0)))
}
上述函数的灵感来自此堆栈帖子。 我无法编译它,我不确定我错过了什么。 此函数的错误是
expected `(i32, i32)`, found `Map<Map<..., ...>, ...>`
但是使用 collect() 或 unzip() 也会导致问题。
答: 暂无答案
评论