【发布时间】:2018-01-07 16:33:10
【问题描述】:
我在Cargo.toml中指定了一些特性:
[features]
complex = []
simple = []
当我构建我的项目时,我使用cargo build --features="complex" 或simple。
在某些函数中,我想根据使用的功能返回一个值:
fn test() -> u32 {
let x: u32 = 3;
if cfg!(feature = "complex") {
let y: u32 = 2;
x + y
}
if cfg!(feature = "simple") {
let y: u32 = 1;
x + y
}
}
但这不起作用,因为它试图评估两个表达式。在我的情况下,使用 cfg! 宏的正确方法是什么?
【问题讨论】:
-
Idiomatic Rust 不使用冗余类型注释。应删除函数体内的所有
: u32。
标签: rust