本文介绍了粘合首字母缩写和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:在带括号的const声明列表中,除第一个声明外,任何声明中都可以省略表达式列表。这样的空列表等同于对前面的第一个非空表达式列表及其类型(如果有的话)的文本替换。因此,省略表达式列表等同于重复上一个列表。
所以在您的情况下,它可能看起来像这样,非常清楚和可读性:
// stream types const ( StreamMPEGDASH = iota StreamHLS StreamMPEGTSUDP StreamMPEGTSRTP ) 另请参阅Go Code Review Comments以了解更多详细信息。可在Initialisms部分找到缩略语: 名称中属于首字母缩写或首字母缩写的单词(例如URL或Nato;)的大小写一致。例如,";URL";应显示为";URL";或";url";(如";urlPony";或";URLPony";),而不应显示为";URL";。下面是一个示例:ServeHTTP Not ServeHttp。此规则也适用于";id";的缩写,因此将";appid";写为";appid";。
更多推荐
粘合首字母缩写和Golang命名约定
发布评论