我的目标是在桌面 /Users/username/Desktop/Learn/golang-package
上创建一个 Go 的项目文件夹并创建一个 math
包。
参考:https://www.golang-book.com/books/intro/11
问题是: go run main.go
抛出 main.go:4:2: package chapter-11/math is not in GOROOT (/usr/local/go/src/chapter11/math)
我做了什么:
- 运行
go env -w GO111MODULE=off
然后运行go run main.go
,它会抛出main.go:4:2: cannot find package "chapter11/math" in any of: /usr/local/go/src/chapter11/math (from $GOROOT) /Users/username/go/src/chapter11/math (from $GOPATH)
- 在
./math
文件夹中运行go install
,什么也没发生。 - 将
./math
文件夹复制到/usr/local/go/src/chapter11/
并运行go run main.go
它可以工作,但我希望能够将它放在桌面上而不是 /usr/local/go 每次我需要创建时都需要输入密码新文件夹或更改文件夹名称。
文件夹概览
golang-package
|-main.go
|-chapter11
|- math
|- math.go
主。go
package main
import (
"chapter11/math"
"fmt"
)
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))
}
回答1
结果是:
- 您可以在桌面上创建项目,例如
/Users/username/Desktop/Learn/learn-go
。 go install
在项目文件夹中,例如/Users/username/Desktop/Learn/learn-go
将在/usr/local/go/bin
上创建一个文件。- 如果您创建了一个包,例如
package math
并且您希望访问它,您需要运行例如go mod init example.com/chapter11
然后您需要添加import "example.com/chapter11/math"