gpt4 book ai didi

rust - 在默认特征实现中使用关联常量

转载 作者:行者123 更新时间:2023-11-29 08:04:30 25 4
gpt4 key购买 nike

我想完成以下任务

trait Trait {
const CONST: f64;
fn fun(&self) -> f64 {
1.0 + self.CONST
}
}

然后定义一堆 struct-s 以不同的常量实现 Trait。比如

struct Struct {}
impl Trait for Struct {
const CONST: f64 = 1.0;
}

不幸的是,前一个片段无法编译。我可以同时拥有关联常量和默认实现,但似乎我不能在默认实现中使用常量。这可能吗?

最佳答案

常量不属于具体的实例,而是属于类型本身。您必须使用 Self::CONST:

trait Trait {
const CONST: f64;
fn fun(&self) -> f64 {
1.0 + Self::CONST
}
}

( Permalink to the playground )

关于rust - 在默认特征实现中使用关联常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58664102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com