gpt4 book ai didi

swift - 使用泛型扩展类型

转载 作者:行者123 更新时间:2023-11-28 12:21:39 24 4
gpt4 key购买 nike

在 Swift 中,我试图创建一个通用类,它可以扩展另一个类,同时继承它。我可以按如下方式在 C++ 中执行此操作,但有没有办法在 Swift 中执行相同的操作?

class Atom {};

template<typename Base, typename Extension>
class Extend: Base {
Extension _value;
};

int main() {
return 0;
}

我一直在尝试应用的一种方法是面向协议(protocol)的设计,但它似乎无法接受一个类并对其进行扩展。我达到的最佳效果是手动创建扩展,并声明它确实扩展了 Atom,但此时,我只会创建另一个类并手动向其添加相应的属性。

最佳答案

一种方法是在编译或运行时为子类生成代码。检查这些问题的答案: How to generate code dynamically with annotations at build time in Java? , 和 Generating, compiling and using Java code at run time? .您可以向基类添加一个自定义泛型方法,该方法将被每个子类(在生成的代码中)覆盖,并且它可能返回 Object。如果值得麻烦的话,这将是一种可行的方法。

关于swift - 使用泛型扩展类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585770/

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