Rust中的嵌套常量

时间:2018-08-02 22:07:21

标签: nested rust constants

在Ruby中,我可以这样做:

module Settings
  module General
    SomeSetting = "Some value"
  end
end

puts Settings::General::SomeSetting;
# => "Some value"

如何在Rust中实现相同的目的?

我想要一些硬编码的值,并且我不想声明仅当一次创建该结构时就可以用来存储设置的结构。

我尝试过寻找,但是我找不到确定的东西。

是不是很简单?

settings.rs:

pub mod dungeon {
    pub mod general {
        pub mod room {
            const MinSize: i32 = 6;
            const MaxSize: i32 = 10;
            const MaxNo:   i32 = 30;
        }
        pub mod lighting {
            const FovWalls: bool = true;
            const TorchRadius: i32 = 10;
        }
        pub mod monster {
            const MaxNo: i32 = 3;
        }
    }
}

这将允许类似

&settings::dungeon::general::room::MaxNo

1 个答案:

答案 0 :(得分:1)

  

是否简单

是的。 如您自己的代码所示,您可以像使用Ruby模块一样使用Rust模块来添加命名空间。

您还可以将常量添加到结构,枚举或特征中:

struct Foo;

impl Foo {
    const BAR: i32 = 42;
}

fn main() {
    println!("{}", Foo::BAR);
}