Golang“导入但未使用”错误,但需要包装,只是未在代码中调用

Joh*_*ith 1 validation import go

我使用的validator2库来验证我的Go应用程序结构域。结果看起来像这样:

type data struct {
    Event string `json:"event" validate:"nonzero"`
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用

import ( 
    "gopkg.in/validator.v2"
)
Run Code Online (Sandbox Code Playgroud)

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

Adr*_*ian 5

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

import ( 
    _ "gopkg.in/validator.v2"
)
Run Code Online (Sandbox Code Playgroud)

然而,这个包不是有一个包init的功能,所以在导入它没有任何意义。您不需要仅使用struct标记就导入软件包-struct标记是任意的,无需进行编译时检查,也不必在使用前定义它们。它们仅用于反射。