有没有一种方法可以使下面的常量更易读,而不违反golang的命名惯例?
const ( // stream types
MPEGDASHStream = iota
HLSStream = iota
MPEGTSUDPStream = iota
MPEGTSRTPStream = iota
)
有没有一种方法可以使下面的常量更易读,而不违反golang的命名惯例?
const ( // stream types
MPEGDASHStream = iota
HLSStream = iota
MPEGTSUDPStream = iota
MPEGTSRTPStream = iota
)
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
标识符重复表达式。 规范:常量声明:
在括号内的
const
声明列表中,除了第一个声明外,可以省略表达式列表。这样的空列表等效于文本替换为前面第一个非空表达式列表及其类型(如果有)。省略表达式列表因此等价于重复上一个列表。
因此,在您的情况下,它可以简单地看起来像这样,非常清晰易读:
// stream types
const (
StreamMPEGDASH = iota
StreamHLS
StreamMPEGTSUDP
StreamMPEGTSRTP
)
更多细节请参见Go Code Review Comments,其中包括缩写在首字母缩略语部分:
名字中的首字母缩略语和缩写(例如“URL”或“NATO”)应具有一致的大小写。例如,“URL”应该显示为“URL”或“url”(例如“urlPony”或“URLPony”),而不是“Url”。例如: ServeHTTP而不是ServeHttp。
当“ID”短语表示“标识符”时,此规则也适用,因此请编写“appID”而不是“appId”。
您所做的是符合 Golang 规范的。
根据 代码审查意见,您应该将缩略词用大写字母拼接起来:
名称中的首字母缩略词或首字母缩写(例如“URL”或“NATO”)应具有一致的大小写。例如,“URL”应显示为“URL”或“url”(如“urlPony”或“URLPony”),而不是“Url”。例如:ServeHTTP 而非 ServeHttp。对于具有多个初始化“单词”的标识符,请使用“xmlHTTPRequest”或“XMLHTTPRequest”等。
我喜欢吗?并不是特别喜欢。
您可以稍微调整单词的顺序以使其更易读,例如 MPEGStreamDASH
如果您真的很讨厌它-那么您需要认识到这是您的代码,您可以做任何您想做的事情-例如 MpegDashStream
,MPEG_DASH_Stream
或甚至 MpEg_DaSh_StreaM
- 但那样是不好的;-)
我从https://google.github.io/styleguide/go/decisions.html(特别是名称中的每个首字母缩略词不需要具有相同的大小写
)的理解是,MPEGdashStream
是正确的。
MPEG_DASH_STREAM
- Jerry SaraviaMpegDASHStream
或MPEGDashStream
这样的名称似乎是一个可以接受的妥协方案。 - Joel Cornett