你的问题没有很好的定义。你告诉我们你想基于正则表达式实现路由功能,但你没有告诉我们你想要实现什么样的任务,这会极大地影响要使用的最佳或最佳数据结构。您已经提到您了解许多其他开源实现,也许您应该检查它们的来源。这个答案也可能对您有所帮助,它显示了如何使用正则表达式执行路由功能的基本实现的简单实现。如果您只是希望能够注册与请求路径匹配的正则表达式,然后将服务转发到 a Handler,是的,将“规则”存储在 a 中[]Routes是一个可行且简单的选项。要记住的事情:我肯定会提前编译正则表达式并存储结果,而不是每次都编译它们,这非常浪费资源。所以你的Routes结构应该包含一个类型的字段*regexp.Regexp而不是模式(你也可以保留string模式,例如用于调试目的)。如果您的Routes结构变大,我会考虑在切片中存储指针而不是结构值,例如[]*Routes因为每次循环遍历它们时(例如在每个请求中查看哪些匹配项)或每当您从其中一个创建局部变量时Routes,根据值制作副本。与复制速度快的指针相比,复制大型结构体效率低下。