我是Go的新手(但不是编程),我喜欢这种语言,但我完全理解我应该通过包在应用程序中创建内部库的方式有点麻烦.作为参考,获取外部包然后导入/使用它们很好.
假设我正在申请A.
/home/me/A/a.go (package main)
Run Code Online (Sandbox Code Playgroud)
然后,我意识到a.go开始变得相当大,所以我把它分成两部分
/home/me/A/a.go (package main)
/home/me/A/b.go (package main)
Run Code Online (Sandbox Code Playgroud)
我怎么能从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
Run Code Online (Sandbox Code Playgroud)
我的环境中没有GOPATH,但我尝试export GOPATH=$GOPATH:/home/me/A了并没有改变结果.
我试过阅读关于"go layout"的文章,但它立刻感觉有点压倒性的,我真的很想要一个更简单的解释我试图做的那个"小"步骤
谢谢 !
GOPATH/src目录/我/一个/ a.go:
package main
func main() {
test()
}
Run Code Online (Sandbox Code Playgroud)
GOPATH/src目录/我/一个/ test.go:
package main
import "fmt"
func test() {
fmt.Println("test func !")
}
Run Code Online (Sandbox Code Playgroud)
高管:
$ go run a.go
# command-line-arguments
./a.go:4: undefined: test
Run Code Online (Sandbox Code Playgroud)
编辑:在这里得到我的答案:https://groups.google.com/forum/?fromgroups#!topic / golang -nuts/qysy2bM_o1I
在go run(go run a.go test.go)中列出所有文件,或者使用go build并运行生成的可执行文件.