Parameters 将if块作为参数传递

Parameters 将if块作为参数传递,parameters,parameter-passing,rust,Parameters,Parameter Passing,Rust,我正在尝试用Rust编写一个小测试程序,因为几乎所有东西都可以是这种语言中的表达式,包括if语句,我想将if-else块作为参数传递给println宏,如下所示: println!("{} {} {}", i.name, if v>0 {"owes"} else{"must receive"}, if v<0 {-v} else{v}); println!(“{}{}{}”,即name,如果v>0{“owes”}或者{“must receive”},如果vv可能是一个f32,这意味

我正在尝试用Rust编写一个小测试程序,因为几乎所有东西都可以是这种语言中的表达式,包括
if
语句,我想将
if-else
块作为参数传递给
println宏,如下所示:

println!("{} {} {}", i.name, if v>0 {"owes"} else{"must receive"}, if v<0 {-v} else{v});

println!(“{}{}{}”,即name,如果v>0{“owes”}或者{“must receive”},如果v
v
可能是一个
f32
,这意味着比较
v>0
有一个类型错误。

尝试
v>0.0
v您的问题似乎在其他地方。将您的代码复制到play.rust-lang.org可以很好地工作:通常,当我遇到此类错误时,我会尝试将语句拆分为简单的let绑定,以便于查找错误。@Veedrac这实际上是比较中的一个类型错误。感谢helP
src/main.rs:34:38: 34:39 error: mismatched types:
 expected `f32`,
    found `_`
(expected f32,
    found integral variable) [E0308]
src/main.rs:34      println!("{} {} {}", i.name, {if v>0 {"owes"} else{"must receive"}}, if v<0 {-v} else{v});