已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。
2天前关闭。
Improve this question
我想知道如何在一个globalstruct
中最好地处理类型化的string
和数字常量的集合。
也就是说,我喜欢把所有写好的字符串和幻数都收集到一个可以全局调用的Struct中,这是为了防止输入错误,把所有的设置都放在一个地方,我只找到了有很多样板的解决方案,但是如何才能最好地解决这个问题呢?
2条答案
按热度按时间wgmfuz8q1#
如前所述,你不能真的用struct来实现这个目的,你当然可以在任何给定的包中声明一组公共的常量,然后将它们导出到其他地方使用--
net/http
包可能是这两种方法最常用的例子(http.MethodGet
)。另一种可能适用也可能不适用的方法(在不了解具体用例的情况下很坚韧得太多)是使用
enum
:playground
一般来说,我喜欢为常量使用类型别名,这样我就可以将可能值的范围限制为我想要的值:
playground
dgiusagp2#
感谢上面的@icza注解,这就是go库中常量的处理方式,它们都在全局空间中,所以它们的名字前面都有Method...和Status...作为前缀。
然后为
StatusText(code int)
添加了一个返回字符串的方便方法,但是您可以在此方法中使用任何int。