为什么dbg!
在此for_each
循环中不起作用? Playground link
fn main() {
let chars = "hello".chars();
chars.clone().for_each(|x| dbg!(x));
}
我收到此编译错误:
error[E0308]: mismatched types
--> src/main.rs:4:32
|
4 | chars.clone().for_each(|x| dbg!(x));
| ^^^^^^^ expected (), found char
|
= note: expected type `()`
found type `char`
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
我也尝试过传递对x
的引用。
println
的工作原理:
fn main() {
let chars = "hello".chars();
chars.clone().for_each(|x| println!("{:?}", x));
}
答案 0 :(得分:3)
dbg!
返回您传入的值,而for_each
需要返回一个单位类型。 println!
返回单位类型。
我们可以通过添加;
来完成这项工作:
chars.clone().for_each(|x| {dbg!(x);});