Go Project无法识别一个导入,但所有其他导入都工作正常

bwntbbo3  于 2023-04-09  发布在  Go
关注(0)|答案(1)|浏览(105)

项目运行,我没有看到错误。然而,我试图使用"github.com/kelseyhightower/envconfig",但导入总是被删除。
我做了以下工作。

go get "github.com/kelseyhightower/envconfig"

我现在看到它,但它是灰色的相比,其他人

go 1.20

require (
    github.com/alexedwards/flow v0.0.0-20220806114457-cf11be9e0e03
    github.com/fatih/color v1.15.0
    golang.org/x/exp v0.0.0-20230321023759-10a507213a29
)

require (
    github.com/kelseyhightower/envconfig v1.4.0 // indirect
    github.com/mattn/go-colorable v0.1.13 // indirect
    github.com/mattn/go-isatty v0.0.17 // indirect
    golang.org/x/sys v0.6.0 // indirect
)

运行go mod download
尝试将导入添加回我需要它的位置

package config

import (
    "time"

    "github.com/kelseyhightower/envconfig"  <-- gets removed
)

type OAuth struct {
    Key          string    `envconfig:"APP_KEY" default:""`
    Secret       string    `envconfig:"APP_SECRET" default:""`

同样的事情发生了,所以我运行go mod tidy,现在我的导入在我的go.mod文件中消失了。
我刷新并重新索引我的项目,再次执行相同的过程,得到相同的结果。我删除了go.mod文件,重新初始化,但没有用。
还有其他想法吗

zwghvu4y

zwghvu4y1#

您只使用envconfig作为marshal/unmarshal的标签。因此它将被删除,因为它没有使用。您需要在代码中USEenvconfig。例如

type Foo struct{
     Bar string `envconfig:"bar"`
}
var data []byte // some marshalled data
var foo Foo
envconfig.Unmarshall(&foo,data) // not sure if this is the correct syntax, but you should get the idea

现在由于使用了envconfig,它将不再从导入中删除。

相关问题