Parameters 将if块作为参数传递
我正在尝试用Rust编写一个小测试程序,因为几乎所有东西都可以是这种语言中的表达式,包括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,这意味
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
,这意味着比较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});