从 1.51 开始,Rust 就包含了reduce,我在 Scala 中已经习惯了。
fold与 Scala 中的 FoldLeft 类似,但reduce 不同。我错了什么?
这工作得很漂亮:
let ss = vec!["a", "b", "c"].iter()
.fold("".to_string(), |cur, nxt| cur + nxt);
println!("{}", ss);
Run Code Online (Sandbox Code Playgroud)
这不会:
let ss = vec!["a", "b", "c"].iter()
.reduce(|cur, nxt| cur + nxt);
println!("{}", ss);
Run Code Online (Sandbox Code Playgroud)
错误:
let ss = vec!["a", "b", "c"].iter()
.fold("".to_string(), |cur, nxt| cur + nxt);
println!("{}", ss);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?