3 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
此答案與Rust的1.0之前版本有關(guān),并且刪除了所需的功能
您可以std::result::fold為此使用功能。遇到第一個(gè)后,它將停止迭代Err。
我剛剛編寫的示例程序:
fn main() {
println!("{}", go([1, 2, 3]));
println!("{}", go([1, -2, 3]));
}
fn go(v: &[int]) -> Result<Vec<int>, String> {
std::result::fold(
v.iter().map(|&n| is_positive(n)),
vec![],
|mut v, e| {
v.push(e);
v
})
}
fn is_positive(n: int) -> Result<int, String> {
if n > 0 {
Ok(n)
} else {
Err(format!("{} is not positive!", n))
}
}
輸出:
Ok([1, 2, 3])
Err(-2 is not positive!)

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
- 3 回答
- 0 關(guān)注
- 661 瀏覽
添加回答
舉報(bào)