不同模块中的Rust常量?

30

我有一个名为“main.rs”的文件,在其中声明了一个版本常量。

pub const VERSION: &'static str = "v2";
mod game;
fn main() {
   do_stuff();
}

然后我想在另一个模块"game.rs"中访问这个全局常量:

pub fn do_stuff() {
   println!("This is version: {}", VERSION);
}

我该如何使常量在所有地方都可用?

2个回答

33
在`main.rs`中声明了`VERSION`,它是一个crate根,因此您可以使用其绝对路径访问它:`crate::VERSION`1
这应该可以正常工作:
pub fn do_stuff() {
    println!("This is version: {}", crate::VERSION);
}

在Rust 2015中,可以使用::VERSION,但是从Rust 2018开始,需要使用crate

我们如何处理u64类型的字段? - Rajeev Ranjan
3
注意,在现代 Rust 中,您应该使用 "crate::Version"。 - RandomInsano
@RandomInsano所说的没错。这个答案需要稍微更新一下,它已经不再有效了。 - OctaveL
如果我在mod.rs中声明它会怎样? - collinsmarra

1
use crate::VERSION
println!("version: {}", VERSION);

会更好。


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