Appearance
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 层面上定义常量的方式,这使得这些常量可以在多个具体类型中共享和重用。