gpt4 book ai didi

go - 在应用程序中导入本地库和文件

转载 作者:IT王子 更新时间:2023-10-29 01:06:16 25 4
gpt4 key购买 nike

我是 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,所以我认为如果我只给它们自己的包并将功能封装在公共(public)/导出的 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 !")
}

执行:

$ 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 并运行生成的可执行文件。

最佳答案

您正在尝试使用 Go 构建系统,但未遵循必要的目录布局。阅读你会受益匪浅 this document .

简而言之,这些是 go 工具的阻碍因素:

  • 必须有一个有效的、导出的 GOPATH

  • 导入路径为“example/foo”的包文件必须位于$GOPATH/src/example/foo目录中。

有关详细信息,请参阅上面链接的文章。

关于go - 在应用程序中导入本地库和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16760239/

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