gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:33:54 53 4
gpt4 key购买 nike

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

我的代码组织

我在“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/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com