首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >胶合缩略语与高丽命名约定

胶合缩略语与高丽命名约定
EN

Stack Overflow用户
提问于 2016-10-03 11:07:55
回答 2查看 14.3K关注 0票数 16

有没有一种方法可以使下面的常量更易读,而又不打破金刚命名的惯例?

代码语言:javascript
复制
const ( // stream types
    MPEGDASHStream  = iota
    HLSStream       = iota
    MPEGTSUDPStream = iota
    MPEGTSRTPStream = iota
)
EN

回答 2

Stack Overflow用户

发布于 2016-10-03 11:13:56

Go的命名约定更喜欢MixedCaps而不是下划线,所以不要使用它们。来源:有效Go: MixedCaps

通常,当您有一个实体的不同值的常量时,一种更容易理解的方法是从该实体开始常量名称,然后是具体值的名称。最好的例子是net/http包:

代码语言:javascript
复制
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标识符重复表达式。规范:常量声明:

在括号大小的const声明列表中,表达式列表可以从除第一次声明之外的任何声明中省略。这种空列表等效于前面的第一个非空表达式列表及其类型(如果有的话)的文本替换。因此,省略表达式列表等同于重复前面的列表。

因此,在您的例子中,它可以简单地如下所示,这是非常清晰和可读的:

代码语言:javascript
复制
// stream types
const (
    StreamMPEGDASH = iota
    StreamHLS
    StreamMPEGTSUDP
    StreamMPEGTSRTP
)

有关更多细节,请参见Go代码评审评论。在首字母部分可以找到缩略语:

名字中的单词是首字母或首字母缩略词。"URL“或”北约“)有一个一致的例子。例如,"Url“应该以"URL”或"URL“(如"urlPony”或"URLPony")的形式出现,而不是以"url“的形式出现。下面是一个例子: ServeHttp而不是ServeHTTP。 当"ID“是”标识符“的缩写时,这个规则也适用于”ID“,所以写"appId”而不是"appID“。

票数 14
EN

Stack Overflow用户

发布于 2020-08-11 09:53:59

你所做的是典型的戈朗方式。

根据代码评审注释,您应该在ALLCAPS中对缩略语进行字符串化

名字中的单词是首字母或首字母缩略词。"URL“或”北约“)有一个一致的例子。例如,"Url“应该以"URL”或"URL“(如"urlPony”或"URLPony")的形式出现,而不是以"url“的形式出现。举个例子: ServeHttp而不是ServeHTTP。对于具有多个初始化“word”的标识符,例如使用"XMLHTTPRequest“或"xmlHTTPRequest”。

我喜欢吗?不是很多。

您可以稍微移动一些单词,使其更易读,例如MPEGStreamDASH

如果你真的讨厌它--那么你需要意识到这是你的代码,你可以做你想做的任何事情--不管是MpegDashStreamMPEG_DASH_Stream,甚至MpEg_DaSh_StreaM --但那是邪恶的;-)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39830166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档