首页 > 后端开发 > Golang > 正文

我可以使用通配符导入 Go 中目录中的所有子包吗?

Mary-Kate Olsen
发布: 2024-11-16 08:11:03
原创
471 人浏览过

Can I import all subpackages within a directory in Go using a wildcard notation?

在 Go 中导入子包而不显式导入每个目录

当使用在单个目录下包含多个子包的项目结构时,它可以单独导入每个子包不方便。为了解决这个问题,开发者可能想知道是否有一种方法可以使用通配符导入目录中的所有子包。

用户提供的示例涉及一个结构如下的项目:

main.go (root directory)
|- entities
    |- bar
        |- bar.go
        |- basic.go
        |- req.go
登录后复制

尝试使用如下所示的通用符号导入 bar 子包会触发编译error:

package main

import bar "one/entities/bar/*"

func main(){

}
登录后复制

不幸的是,Go 的导入语法不支持通配符导入。错误消息表明指定目录中没有 Go 文件:

src/main/main.go:3:8: no Go files in /home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar
登录后复制

建议的方法是显式指定要导入的子包,而不是使用通配符导入子包。这确保了依赖关系被明确定义并且可以被其他开发人员轻松理解。

对于提供的示例,正​​确的导入语句将是:

package main

import (
    "log"
    "one/entities/bar/basic"
)

func main(){

    v := basic.Get.Req.Headers{}
    log.Fatal(v)

}
登录后复制

在这种情况下,只有导入所需的特定子包,即 basic。这种方法避免了对未使用的子包的潜在依赖,并保持代码井然有序。

以上是我可以使用通配符导入 Go 中目录中的所有子包吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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