Golang 中的集合

问题描述 投票:0回答:1

我使用 Go 作为我的服务器语言(因为我喜欢学习新语言)。与 Python 或 JavaScript 不同,我喜欢 Go 是强类型

我正在寻找一种设计模式,以允许我为自定义对象创建集合。在 Java、C# 或 C++ 中,我会使用 泛型。在 C 语言中,我会破解 预处理器。在 Go 中,我无法想出解决方案。

我总是可以使用

interface{}
,但这样我就会失去强类型的优势(你好Python/Node.js运行时错误)。

目前,我只是为我需要的每种新类型复制粘贴我的集合,但我发现自己很难维护代码库,因为现在每个集合都有大约 10 个副本。所以我正在寻找更好的设计模式。而且,我的每一点都在告诉我这是一个坏主意。

我并不是在寻找“Go 中没有泛型”的咆哮。我正在寻找实际经验丰富的 Go 开发人员,他们遇到过此类问题并围绕此类问题进行设计。

go collections
1个回答
3
投票

不幸的是,如果像切片/映射这样的标准 Go 数据类型不具备您目前需要的功能,那么我们无能为力。

添加泛型可以使集合的实现变得更容易。目前,该工具已经有了草案和第二版。 您可以在此处找到更多信息。

https://github.com/ReactiveGo/jig 是一个工具,它可以通过生成您需要的集合来让您的生活更轻松。

© www.soinside.com 2019 - 2024. All rights reserved.