【问题标题】:"imported and not used" error, but package is needed, just not called in code [duplicate]“导入但未使用”错误,但需要包,只是没有在代码中调用[重复]
【发布时间】:2021-08-19 15:48:06
【问题描述】:

我正在使用 validator2 库来验证我的 Go 应用程序中的结构字段。结果看起来像这样:

type data struct {
    Event string `json:"event" validate:"nonzero"`
}

但是,当我尝试使用

导入库时
import ( 
    "gopkg.in/validator.v2"
)

它返回一个错误,imported and not used: "flight-recorder/vendor/gopkg.in/validator.v2" as validator。这是因为在代码中没有直接调用该库。我怎样才能指示去?

【问题讨论】:

  • 你是如何使用那个包的?它没有初始化函数,所以导入它没有副作用。
  • 为什么你认为你需要导入这个包?据我所知,这不需要?

标签: validation go import


【解决方案1】:

要仅出于副作用而导入库(即运行包init 函数),请使用空导入:

import ( 
    _ "gopkg.in/validator.v2"
)

但是,这个包没有有包init功能,所以导入它没有意义。你不需要导入包只是为了使用结构标签 - 结构标签是任意的,不经过编译时检查,也不必在使用前定义。它们纯粹用于反射。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2020-04-09
    相关资源
    最近更新 更多