dsfsdfsd34324 2019-03-21 06:23
浏览 429
已采纳

golangci-lint常量显式类型

I have a question about golangci-lint. The linter returns me for something like:

type outputFormat string

const (
    formatNone outputFormat = ""
    formatText              = "TEXT"
    formatJSON              = "JSON"
)

an error like:

only the first constant in this group has an explicit type (staticcheck)
formatNone outputFormat = ""

But what's the problem about it? In https://go101.org/article/constants-and-variables.html they describe in chapter Autocomplete in constant declarations that incomplete constants will be recognized and filled.

I did not find any reference which tells me to avoid using incomplete constant definitions.

Can somebody explain to me, what's the matter behind that?

  • 写回答

1条回答 默认 最新

  • douxing5199 2019-03-21 06:26
    关注

    As explained in staticcheck's documentation for that check:

    In a constant declaration such as the following:

    const (
         First byte = 1
         Second     = 2
    )
    

    the constant Second does not have the same type as the constant First. This construct shouldn't be confused with

    const (
          First byte = iota
          Second
    )
    

    where First and Second do indeed have the same type. The type is only passed on when no explicit value is assigned to the constant.

    When declaring enumerations with explicit values it is therefore important not to write

    const (
          EnumFirst EnumType = 1
          EnumSecond         = 2
          EnumThird          = 3
    )
    

    This discrepancy in types can cause various confusing behaviors and bugs.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥20 macmin m 4连接iPad
  • ¥15 DBIF_REPO_SQL_ERROR
  • ¥15 根据历年月数据,用Stata预测未来六个月汇率
  • ¥15 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部