Skip to content

5.12 trait 常量

要定义 trait 常量(Trait constants),我们需要使用 const 关键字,与方法一样,常量也可以提供默认值。 例如:

rust
trait ConstTrait {
    const GREETING: &'static str;
    const NUMBER: i32 = 48;
}

在上述代码中,我们定义了一个 trait ConstTrait,它包含了一个常量 NUMBER,类型为 i32,默认值为42。注意,在 trait 常量中,必须指定常量类型,并在其后面添加分号。

当我们针对一个类型实现该 trait 时,需要提供对应的常量值。例如:

rust
struct MyStruct;

impl ConstTrait for MyStruct {
    const NUMBER: i32 = 42;
}

在上述代码中,我们定义了一个结构体 MyStruct,并对其实现了 trait ConstTrait。我们为 NUMBER 提供了一个常量值为42

与 trait 方法不同的是,trait 常量可以用于计算其他常量或类型,但是它们不能被具体类型重载或覆盖。trait 常量的值在编译时就确定下来了,也就是说它们是不可变的

Trait 常量提供了一种在 trait 层面上定义常量的方式,这使得这些常量可以在多个具体类型中共享和重用。

Released under the MIT License