Golang源码文件中遇到的问题
Golang源码文件中遇到的问题
有人能帮帮我吗?
我在GitHub上遇到了一个问题。
当我们对 “goes to eleven” 执行 go get -d 命令时,它在包目录下创建了那个github目录,而不是在源码目录下。

请告诉我这个问题该如何解决。
方向错误
抱歉,没理解你的意思
我不喜欢视频。我更愿意阅读。
哪个问题?如今模块已成为默认设置,这在一定程度上是预料之中的。
好的,我会做,非常感谢你的帮助。
我对视频一无所知。我更喜欢通过官方文档来学习。
而我观看的视频中,文件只在 src 目录里。
我将尝试启用 $GOPATH\src,看看是否能解决问题。
func main() {
fmt.Println("hello world")
}
你能给我一些建议吗?因为我是编程新手,并且直接从Go语言开始学习。
你应该弄清楚如何使用 Go 模块,而不是如何回归到过时的工作流程。
好的,非常感谢。 另外,由于我是编程新手,你能给我一些建议,告诉我可以参考哪些视频吗?
你能给我推荐一些视频吗?大部分视频都使用Mac,而我用的是Windows。 我已经下载了Git Bash和GoLand。
请直接专注于 Go 模块。GOPATH 是模块化之前的技术。请避免使用它。
这是谷歌搜索的第一个结果。看起来是个不错的起点:如何使用 Go 模块 | DigitalOcean

如今,Go 模块已成为默认方式,go get 通常只是下载源代码并将模块添加到 go.mod 中。
下载到 $GOPATH/src 是旧版行为,在现代 Go 中默认已禁用。
你应该寻找一个更现代的教程,遵循模块的惯用法。
好的,我遇到的问题是:我打开 Git Bash 终端,创建了 bin、pkg 和 src 目录。
然后在 src 目录中,我使用命令 go get -d 以及我想要获取的资源,我希望的路径是 src。
当它下载完成后,它被保存在 pkg 文件夹里,而不是 src 文件夹里。
每次我在 documents\goworkplace\src 目录下使用 go get 命令时,
它本应该把文件下载到 src 目录,
但它却下载到了 documents\goworkplace\pkg 目录。
我现在刚开始接触编程,所以卡在这个问题上无法继续。
这个问题通常是由于 GOPATH 环境变量设置或模块模式导致的目录结构问题。以下是具体解决方案:
1. 检查当前模块模式
// 查看当前是否启用 Go Modules
go env GO111MODULE
// 如果返回 "auto" 或 "on",说明正在使用模块模式
2. 如果使用 Go Modules(推荐)
# 初始化模块(如果尚未初始化)
go mod init your-module-name
# 然后执行 go get
go get github.com/user/repo
# 或者使用 -d 标志
go get -d github.com/user/repo
3. 如果使用传统 GOPATH 模式
# 确保 GOPATH 正确设置
echo $GOPATH
# 正确结构应该是:
# GOPATH/
# src/
# github.com/
# user/
# repo/
# 在正确的 GOPATH/src 目录下执行
cd $GOPATH/src
go get -d github.com/user/repo
4. 清理并重新获取
# 清理旧的下载
go clean -modcache
# 重新获取依赖
go get -d github.com/user/repo
5. 检查 go.mod 文件位置
确保 go.mod 文件位于项目根目录:
// go.mod 示例
module example.com/myproject
go 1.21
require (
github.com/user/repo v1.2.3
)
6. 完整示例代码
// main.go
package main
import (
"fmt"
"github.com/user/repo" // 替换为实际包
)
func main() {
fmt.Println("Dependency resolved correctly")
}
执行步骤:
# 在项目根目录
go mod init example.com/project
go mod tidy
go get -d github.com/user/repo
这样应该能正确将依赖下载到 $GOPATH/pkg/mod(模块模式)或 $GOPATH/src(传统模式)目录中。


