我是新手(但不擅长编程),我喜欢Go语言,但我在完全理解我应该通过包在应用程序中创建内部库的方式时遇到了一些麻烦。作为参考,获取外部包,然后导入/使用它们是很好的。
假设我正在制作一个应用程序A。
/home/me/A/a.go (package main)
然后,我意识到a.go开始变得相当大,所以我把它分成两部分
/home/me/A/a.go (package main)
/home/me/A/b.go (package main)
如何从a.go导入/包含b.go以使其功能可用?
作为问题的继续,在A中我操作了许多对象O,所以我认为如果我只给他们自己的包,并将功能封装在公共/导出的api中,会更好。我该怎么做呢?
我尝试过创建./lib/o.go
(package o)和import lib/o
,但一直收到如下错误
./a.go:6: imported and not used: "o"
./a.go:43: undefined: o
我的环境中没有GOPATH,但是我尝试了export GOPATH=$GOPATH:/home/me/A
,它没有改变结果。
我试着读了一篇关于"go layout“的文章,但它立刻让我感觉有点不知所措,我真的很想简单地解释一下我正在尝试的这一”小“步骤
谢谢!
GOPATH/src/me/a/a.go:
package main
func main() {
test()
}
GOPATH/src/me/a/test.go:
package main
import "fmt"
func test() {
fmt.Println("test func !")
}
Exec:
$ go run a.go
# command-line-arguments
./a.go:4: undefined: test
编辑:在这里得到我的答案:https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/qysy2bM_o1I
可以在go run (go run a.go test.go
)中列出所有文件,也可以使用go build
并运行生成的可执行文件。
发布于 2013-05-26 22:39:33
您正在尝试使用Go构建系统,但没有遵循必要的目录布局。您将从阅读this document中获益良多。
简而言之,这些是,wrt,go工具,显示停止程序:
$GOPATH/src/example/foo
目录中。有关更多详细信息,请参阅上面的链接文章。
https://stackoverflow.com/questions/16760239
复制相似问题