我使用golang作为我的服务器语言(因为我喜欢学习新语言)。与Python或Javascript不同,我喜欢go是强类型的。
我正在寻找一种设计模式,使我能够创建自定义对象的集合。在Java、C#或C++中,我会使用泛型。在C语言中,我会破解预处理器。在戈朗,我没能想出一个解决方案。
我总是可以使用interface{},但是这样我就失去了强类型的优点。(您好,python/node.js运行时错误!)
目前,我只是为我需要的每个新类型复制粘贴我的集合,但我发现自己正在努力维护代码库,因为现在每个集合都有大约10个副本。所以我在寻找一个更好的设计模式。(而且,我的每一分每一秒都在告诉我这是个坏主意)
我并不是在大肆宣扬“go中没有泛型”。我正在寻找有实际经验的golang开发人员谁遇到了这些问题,并围绕这些问题进行了设计。
发布于 2020-07-31 15:42:07
不幸的是,如果像切片/地图这样的标准go数据类型目前没有你需要的功能,那么就没有什么可以做的了。
让实现集合变得更容易的是添加泛型。至于现在,有一个草案和第二个版本的工具。你可以在here上找到更多信息。
https://github.com/ReactiveGo/jig是一个工具,它可以通过生成所需的集合来简化您的工作。
https://stackoverflow.com/questions/63182445
复制相似问题