本文介绍了粘合首字母缩写和Golang命名约定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法在不违反Golang命名约定的情况下使下面的常量更具可读性?
const ( // stream types
MPEGDASHStream = iota
HLSStream = iota
MPEGTSUDPStream = iota
MPEGTSRTPStream = iota
)
推荐答案
Go的命名约定首选MixedCaps而不是下划线,因此不要使用它们。来源:Effective Go: MixedCaps
通常,当一个实体的不同值具有常量时,更容易阅读的方法是以实体开头的常量名称,然后是具体值的名称。net/http
包就是很好的例子:
const (
MethodGet = "GET"
MethodHead = "HEAD"
MethodPost = "POST"
// ...
)
const (
StatusContinue = 100 // RFC 7231, 6.2.1
StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2
StatusProcessing = 102 // RFC 2518, 10.1
StatusOK = 200 // RFC 7231, 6.3.1
StatusCreated = 201 // RFC 7231, 6.3.2
// ...
)
此外,您也不需要使用iota
标识符来重复该表达式。Spec: Constant declarations:所以在您的情况下,它可能看起来像这样,非常清楚和可读性:
// stream types
const (
StreamMPEGDASH = iota
StreamHLS
StreamMPEGTSUDP
StreamMPEGTSRTP
)
另请参阅Go Code Review Comments以了解更多详细信息。可在Initialisms部分找到缩略语: 这篇关于粘合首字母缩写和Golang命名约定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!