粘合首字母缩写和Golang命名约定 [英] Glued acronyms and golang naming convention

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆