我有这个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中没有Go文件
该错误是有道理的。有什么方法可以从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:
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.
您必须指定所指元素在哪个包中存在。例如bar.Get.Basic.Req.Headers。没有明确的导入就无法确定。
bar.Get.Basic.Req.Headers