在Rust中,如何定义一个静态布尔变量使之与std::env::consts::OS=="windows"相等?

3
我想在Rust文件中创建一个名为IS_WINDOWS的全局静态布尔值:
lazy_static! {
    pub static ref IS_WINDOWS: bool = std::env::consts::OS=="windows";
}

然而,当我这样做时,其他地方引用IS_WINDOWS值的任何内容都不会将其视为 bool ,而是将其视为自定义的 IS_WINDOWS 结构体,例如尝试执行以下操作:

if crate::globals::IS_WINDOWS {
}

...导致错误:

mismatched types
expected `bool`, found struct `globals::IS_WINDOWS`
1个回答

3
原来,我所需要做的就是使用*解除静态变量的引用:
if *crate::globals::IS_WINDOWS {
}

2
我将链接 这个问题和答案,解释了lazy_static对于每个变量使用唯一的包装器类型,这就是为什么需要解引用的原因。 - kmdreko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接