【问题标题】:Why is lint giving a warning ineffectual assignment to (ineffassign)为什么 lint 给 (ineffassign) 一个警告无效分配
【发布时间】:2021-06-23 05:17:39
【问题描述】:

在cfg := &utils.Config{} 行收到一个lint 警告ineffectual assignment to "cfg"。这是为什么呢?

    cfg := &utils.Config{}
    env := os.Getenv("TEST")
    if strings.EqualFold(env, "INT") {
        cfg = utils.GetIntConfig()
    } else {
        cfg = utils.GetConfig()
    }

    cgw.Cgw(cfg)

【问题讨论】:

  • ineffectual assignment to "cfg" 表示赋值给 cfg 没有任何作用,因为你以后会无条件地覆盖它。

标签: go lint


【解决方案1】:

在下面的if 语句之后,写入cfg,因此从不使用使用cfg := &utils.Config{} 分配给cfg 的值。您正在使用声明可以执行的赋值。

var cfg *utils.Config
...

【讨论】:

  • 好的,var cfg *utils.Config 工作了。谢谢。它只需要一个声明。
  • @Ishmeet,请注意 linter 并没有强迫您使用 var 声明;相反,它暗示您的代码中可能存在错误 - 因为第一次分配可能涉及更多,例如分配某个函数调用的返回值,该函数调用将返回一个以复杂方式初始化的值,并且可能取决于某些输入数据.
猜你喜欢
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 2013-02-23
  • 1970-01-01
  • 2015-01-29
  • 2019-03-11
  • 1970-01-01
相关资源
最近更新 更多