gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:47:42 25 4
gpt4 key购买 nike

特质用于对要从结构体实现的某些功能进行分组,但是是否可以从特征中访问结构体字段?

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

我知道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
}
}

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

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

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