gpt4 book ai didi

go - 如何使用自定义包

转载 作者:数据小太阳 更新时间:2023-10-29 03:45:04 24 4
gpt4 key购买 nike

我有两个简单的go文件

主.go

package main

import "fmt"
import "go-package/math"

func main() {
xs := []float64{1, 2, 3, 4}
avg := math.Average(xs)
fmt.Println(avg)
}

我的数学.go

package math
func Average(xs []float64) float64 {
total := float64(0)
for _, x := range xs {
total += x
}
return total / float64(len(xs))
}

文件和目录结构是:

$GOPATH
src
go-package
math
mymath.go
main.go

当我导航到 $GOPATH/src/go-package,打开终端并运行命令:go run main.go,结果被打印出来。

然后,我导航到 $GOPATH/src/go-package/math,并运行命令 go install,包成功安装在 $GOPATH\pkg\windows_amd64\go -package\math.a

然后我导航回 $GOPATH/src/go-package,并删除 math 目录,我重新运行命令 go run main.go,出现错误:

main.go:4:8: cannot find package "go-package/math" in any of:
D:\softwareInstalled\Go\src\go-package\math (from $GOROOT)
D:\softwareInstalled\Go\GoPath\src\go-package\math (from $GOPATH)

我已将数学包放在 $GOPATH\pkg\windows_amd64\go-package\math.a

我想知道为什么 Go 不从这个目录中获取包。

我该如何使用 math.a?我应该把它放在哪里?

最佳答案

Golang 使用您导入的包的源文件。所以当你想在你的 main.go 中使用包 go-package/math 时,你不应该从 src/go-package/math 中删除源文件。将它们留在您的项目中,一切都很好。

此外,go get 还将源文件加载到您的$GOPATH/src 文件夹中。希望这会有所帮助。

关于go - 如何使用自定义包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115033/

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