本文介绍了粘合首字母缩写和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命名约定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 09:46