我知道这是因为object safety:
物体安全特性可以是trait object的基本特性.如果一个性状具有以下品质(在RFC 255中定义),则该性状为object safe:
- ...
- 它不能有任何关联的常量.
但是,如果关联的常量声明为specific value,为什么Rust仍然不支持它?下面是一个例子:
trait Trait {
const A: i32 = 64;
}
fn fun(t: Box<dyn Trait>) -> bool {
return true;
}
我想使用一个函数返回一个常量值,并故意省略&self
参数,但它仍然不起作用.以下是代码:
trait Trait {
fn getA() -> i32 {
64
}
}
fn fun(t: Box<dyn Trait>) -> bool {
return true;
}
Rust不支持它有什么低级原因吗?或者仅仅是因为RFC规则?