gpt4 book ai didi

rust - 在 trait impls 中重用默认方法实现

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

<分区>

在 C++ 中,重写的虚成员函数可以调用其基类中定义的版本:

struct foo {
virtual void run() {
printf("printf yeah!\n");
}
};

struct bar : foo {
void run() {
foo::run();
std::cout << "un-cout-h!" << std::endl;
}
};

我想在 Rust 中做类似的事情。我有一个包含默认方法定义的特征,我想在重写这些方法的 impls 中重用这些定义:

trait Foo {
fn run(&self) {
// do something
}
}

impl Foo for Bar {
fn run(&self) {
// call default implementation of Foo::run()
// run custom logic
}
}

我该怎么做?


编辑:提议的解决方案并不完全令人满意。一旦我重写了一个方法,我希望重写的实现不被第三方使用。

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