当前位置: 首页 > 面试题库 >

通过导入父目录,用golang导入子包?

林元明
2023-03-14
问题内容

我有这个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目录中导入所有子包?

像这样:

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.

您必须指定所指元素在哪个包中存在。例如bar.Get.Basic.Req.Headers。没有明确的导入就无法确定。



 类似资料:
  • 问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这

  • 问题内容: 如何导入驻留在父目录中的模块(python文件)? 这两个目录中都有文件,但是我仍然无法从父目录导入文件? 在此文件夹布局中,脚本B尝试导入脚本A: 脚本B中的以下代码不起作用: 问题答案: 您无需在Python中导入脚本,而可以导入模块。一些python模块也是可以直接运行的脚本(它们在模块级别上做了一些有用的工作)。 通常,最好使用绝对进口,而不是相对进口。 在: 如果您想作为脚本

  • 问题内容: 如何从父目录进行相对导入? 来自: 这给出了一个模棱两可的错误: 如何从父目录本地导入? 问题答案: 感谢您添加到您的问题。首先是一个答案,然后是一些解释。我建立了您的代码, 去获得,就像你拥有它一样。(我忽略了错误消息。) 如您所愿,将导入行设置回“ ../../../meme”。 (注释掉一些包含未使用变量的代码。) 然后在梅梅/ CMD /米姆目录,要么或者工作。 刚才我说去安装

  • 问题内容: 当前,在Sass文件中,我们具有以下内容: 这很不好,因为我们实际上不确定路径:可能是,因为npm是如何安装东西的。 在Sass中,有没有一种方法可以搜索直到找到node_modules?甚至是通过npm包含Sass的正确方法? 问题答案: 如果您在2017年寻找方便的答案并使用Webpack,这是我发现的最简单的方法。 假设您的模块路径如下: 然后,您可以在主要的scss文件中使用:

  • 问题内容: 我有一个名为“ ClassA”的Python类,另一个应该导入“ A ClassB”的ClassA的Python类。目录结构如下: 我将如何使用,以便ClassB可以使用ClassA? 问题答案: 您确实应该使用软件包。然后将MainDir放置在文件系统中sys.path上的某个点(例如… / site- packages)上,然后可以在ClassB中说: 您只需要在每个目录中放置命名

  • 我有一个这样的文件结构: 在笔记本中的文件我想从和。 我已经找到了这个问题的答案,可以在每个笔记本中使用以下代码行,并每次将这些代码行作为第一个单元格运行: 有没有更好的办法?如果我有很多笔记本中的文件文件夹,我是否必须将这些代码行粘贴到每一行的开头?有更好、更简约或更干净的方法吗?