我是 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
(包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 !")
}
执行:
$ 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
并运行生成的可执行文件。