Rust 为什么我的常量变量可以';在不同的模式中找不到

Rust 为什么我的常量变量可以';在不同的模式中找不到,rust,Rust,我在main.rs中定义了一个const变量,并希望在不同的文件中使用它 在src/main.rs中,我定义了这样的常量,无论是否发布,它都没有使用: const CONFIG_GROUP: &str = "core.hydra.io"; pub const CONFIG_VERSION: &str = "v1alpha1"; pub const COMPONENT_CRD: &str = "componentschematics"; fn main() { ... }

我在main.rs中定义了一个const变量,并希望在不同的文件中使用它

src/main.rs
中,我定义了这样的常量,无论是否发布,它都没有使用:

const CONFIG_GROUP: &str = "core.hydra.io";
pub const CONFIG_VERSION: &str = "v1alpha1";
pub const COMPONENT_CRD: &str = "componentschematics";

fn main() {
...
}
在另一个文件
src/abc.rs
中,我想使用这个常量

无论是否使用
,它都不起作用

println!("{}", COMPONENT_CRD); 
let component_resource = RawApi::customResource(COMPONENT_CRD)
    .within(top_ns.as_str())
    .group(::CONFIG_GROUP)
    .version(::CONFIG_VERSION);
报告说:

    |
208 |         println!("{}", COMPONENT_CRD);
    |                        ^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find value `CONFIG_CRD` in this scope
   --> src/abc.rs:209:54
    |
209 |         let config_resource = RawApi::customResource(CONFIG_CRD)
    |                                                      ^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `CONFIG_VERSION` in the crate root
   --> src/abc.rs:210:24
    |
210 |             .version(::CONFIG_VERSION)
    |                        ^^^^^^^^^^^^^^ not found in the crate root

error[E0425]: cannot find value `CONFIG_GROUP` in the crate root
   --> src/abc.rs:211:22
    |
211 |             .group(::CONFIG_GROUP)
    |                      ^^^^^^^^^^^^ not found in the crate root

我想我们说的是2018版。我建议阅读本节,尤其是这一部分:

前缀
::
以前指的是板条箱根或外部板条箱;现在它明确地指的是一个外部板条箱。例如,
::foo::bar
总是指外部板条箱
foo
内的名称
bar

使用不能使用
::CONFIG_VERSION
::main::CONFIG_VERSION
等。两个选项:

  • 直接使用
    板条箱::配置\u版本
  • 导入它
    使用板条箱::配置_版本
    并只使用
    配置_版本
abc.rs
内容:

pub(板条箱)fn foo(){
println!(“{}”,板条箱::配置_版本);
}
另一个
abc.rs
变体:

使用板条箱::配置_版本;
酒吧(板条箱)fn foo(){
println!(“{}”,配置版本);
}
main.rs
内容:

发布(板条箱)常量配置版本:&str=“v1alpha1”; mod abc; fn main(){ abc::foo() }
是否添加了
使用
?8 |使用配置| CRD;| ^^^^^不
CONFIG\u CRD
外部机箱不能使用
use
正如@DenysSéguret所说,您是否在
src/abc.rs
中编写
使用pkg\u name::CONFIG\u CRD
?我编写
使用机箱::CONFIG\u CRD
abc.rs
中,但它在根目录中告诉no
CONFIG\u CRD
。当我写
pub(crate)const CONFIG_CRD:&str=“operationalconfigurations”为什么?我发现如果我定义
发布(板条箱)const CONFIG_VERSION:&str=“v1alpha1”
mod abc在另一个文件中
src/lib.rs
。然后我可以在
src/abc.rs
中使用const,而现在我不能在
main.rs
中使用它。然后放下
(板条箱)
,只使用
pub
。看见