import - golang 使用导入子目录的函数

标签 import go subdirectory

我无法使用自定义子目录的功能。

我的代码组织

我在“src”下有一个路径层次结构,如

a/b

包含我所有的目录和 go-Files(它是我项目的“根”)。这些目录不包含子目录,并且工作正常。所以最深的路径是“a/b/c”。例如。我有

a/b/c

a/b/d

带有一些 go-files。从“a/b/c”中的文件导入“a/b/d”并使用“d.DoSomething()”调用函数效果很好。

问题描述

现在我想重新组织“a/b/d”。我将一些文件从“a/b/d”移动到

a/b/d/e

和其余的文件到

a/b/d/f

如果尝试使用导入语句导入“a/b/d/e”

import ( "a/b/d/e" )

从“/a/b/c”中的同一个文件并想调用“e.DoSomething()”(这是带有“DoSomething-function”的文件移动到的地方),我得到一个该行出错,我调用“e.DoSomething()”:“undefined: e”。

在搜索结果时,我在任何地方都没有看到具有更深路径层次结构的示例。是一般不能使用/导入子目录还是什么问题?

我用的go版本:go1.2.2 linux/amd64


谢谢你的建议

最佳答案

你的做法是完全错误的。 Go 完全没有导入文件或目录的概念,你可以在 Go 中导入所有包。现在碰巧包的名称是它相对于 GOPATH 的路径,并且您可以使用该名称导入包。但是导入代码中导入包可用的标识符取决于包的包声明。您不能简单地在目录之间“移动”文件,因为每个目录(对于 go 工具)都是一个包而不更改包声明。

您可以在路径 a/b/c 下拥有 package x。当您使用 import ( "a/b/c") 导入包 x 时,所有从包 x 导出的内容都可以作为 x.ExportedName 访问。

请阅读http://blog.golang.org/organizing-go-code仔细。

关于import - golang 使用导入子目录的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25229018/

相关文章:

go - 方法类型定义的语法辅助?

go - 转换 slice 的字节而不复制

go - 为什么看不到函数 f 的输出?

file - 将文件复制到每个文件夹及其子文件夹中

android - 当我尝试在 Android Studio 中导入项目时没有任何反应

php - MySql 中的批量导入查询 - joomla

Python 压缩一个子文件夹而不是整个文件夹路径

linux - 脚本转到文件夹的每个子目录并运行命令

python - 如何修复Python中的 'ImportError: dynamic module does not define module export function (PyInit_cv2)'错误?

python - 从另一个文件调用预编译模块