首页 > 后端开发 > Golang > 为什么在 Go 中导入特定类型时出现'已导入但未使用”和'未定义”错误?

为什么在 Go 中导入特定类型时出现'已导入但未使用”和'未定义”错误?

Mary-Kate Olsen
发布: 2024-11-15 12:03:02
原创
282 人浏览过

Why Am I Getting

导入包和类型

问题:

在以下项目结构中:

src
|-->config
       |--> config.go
|-->otherPackage
       |--> otherFile.go
|-->main.go
登录后复制

config.go 中定义了一个类型,需要在 otherFile.go 中使用。但是,尝试使用以下语句导入它会导致错误:

import (
    "fmt"
    "math"
    "../config"
)
登录后复制

具体错误是:

  • 已导入但未使用。
  • 未定义: Config

即使函数中使用了 Config 类型

根本问题是什么?

答案:

问题源于尝试从包中仅导入特定类型。在 Go 中,不可能从包中导入特定元素。导入一个包时,实际上是导入它的全部内容。

在这种情况下,由于定义 Config 类型的包名为 config,导入它将使它的类型和其他标识符在 config 命名空间下可用。例如,要使用 Config,必须将其引用为 config.Config。

因此,要解决该问题,可以采用以下解决方案之一:

  • 重命名 config 变量: 由于 otherFile.go 中有一个名为 config 的变量,它会隐藏导入的包,因此应该重命名它以避免
  • 使用限定名称引用 Config: 如果无法重命名,则仍然可以通过使用其限定名称(即 config.Config)引用 Config 类型来使用它.

以上是为什么在 Go 中导入特定类型时出现'已导入但未使用”和'未定义”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板