gpt4 book ai didi

oop - 是否可以从特征中访问结构字段?

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

Traits 用于对一些要从结构中实现的函数进行分组,但是是否可以从 trait 中访问结构字段?

我可以想象在 trait 中声明字段,以便字段也被抽象化。我还没有找到这样的语法;还有其他解决办法吗?否则,就不可能有使用特征的非静态方法,对吗?

我了解 C# 的面向对象编程,并且正在研究 Rust,尝试调整我已经从 C# 了解的 OOP 功能。

最佳答案

这听起来像是您误解了特征的工作原理。特征不能有字段。如果您想提供对某个特征的字段的访问,则需要在该特征中定义一个方法(例如,get_blah)。

如果您问是否可以从该结构的特征实现中访问该结构的字段,那么是的。该结构知道它自己的类型,所以没有问题。

trait Pet {
fn is_smelly(&self) -> bool;
}

struct Dog {
washed_recently: bool,
}

impl Pet for Dog {
fn is_smelly(&self) -> bool {
!self.washed_recently
}
}

如果您正在编写特征的默认实现(在特征中定义方法体),那么不,您不能访问字段。默认实现只能使用在特征或超特征中定义的方法。

关于oop - 是否可以从特征中访问结构字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50354162/

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