通过导入父目录,使用golang导入子包?
我有一个main.go文件:通过导入父目录,使用golang导入子包?,go,Go,我有一个main.go文件: package main import "one/entities/bar" func main(){ } 我有这个目录结构: 当我使用以下工具构建项目时: go install main 我发现这个编译错误: src/main/main.go:3:8:中的禁止进入文件 /home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar 这个错误是有道理的。是否有某种方法可以从o
package main
import "one/entities/bar"
func main(){
}
我有这个目录结构:
当我使用以下工具构建项目时:
go install main
我发现这个编译错误:
src/main/main.go:3:8:中的禁止进入文件
/home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar
这个错误是有道理的。是否有某种方法可以从one/entities/bar
目录中导入所有子包
大概是这样的:
package main
import bar "one/entities/bar/*"
func main(){
}
(使用某种*语法并导入bar命名空间中的所有子包)
最终我会尝试这样做:
package main
import (
"log"
"one/entities/bar"
)
func main(){
v := bar.Get.Basic.Req.Headers{}
log.Fatal(v)
}
根据
import
,您不能做这样的事情:
The import names an identifier (PackageName) to be used for access and an
ImportPath that specifies the package to be imported.
ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
ImportSpec = [ "." | PackageName ] ImportPath .
ImportPath = string_lit .
导入语法需要包的包名或路径。所以没有通配符导入
该声明将澄清原因
The PackageName is used in qualified identifiers to access exported
identifiers of the package within the importing source file.
必须指定引用的元素存在于哪个包中。e、 g,
bar.Get.Basic.Req.Headers
。没有显式导入就无法确定这一点。import语句导入一个包。只要目录中的代码属于同一个包,它就会被导入。然后,您可以通过packagename.
访问它。为什么要将单个包细分为多个包?有必要吗?@ChenA。是的,在bar文件夹中,我必须生成一个类型别名,指向文件夹树中的每个分支,它是sux,但我想我要做的是。