golang使用导入的子目录的功能

2 import go subdirectory

我不能使用自定义子目录的功能.

我的代码组织

我在"src"下有一个路径层次结构

A/B

与我的所有目录和go-Files(它是我项目的"根").目录不包含子目录,它工作正常.所以最深的路径是"a/b/c".我有

A/B/C

的a/b/d

一些go文件.导入"a/b/d"并从"a/b/c"中的文件调用带有"d.DoSomething()"的函数正常工作.

问题描述

现在我想要重新组织"a/b/d".我将一些文件从"a/b/d"移动到

的a/b/d/E

和其余的文件

的a/b/d/F

如果尝试使用import-statement导入"a/b/d/e"

进口("a/b/d/e")

来自"/ a/b/c"中的同一个文件,想要调用"e.DoSomething()"(这是"DoSomething-function"文件移动到的地方),我收到错误我称之为"e.DoSomething()":"undefined:e".

在搜索结果时,我无法看到具有更深层路径层次结构的示例.通常不可能使用/ import子目录或者问题是什么?

我使用的go-version:go1.2.2 linux/amd64


感谢您的任何建议

Vol*_*ker 5

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

你可以package x在路径下a/b/c.当您导入包x时,包x中的import ( "a/b/c" )所有导出的东西都可以使用x.ExportedName.

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