基础使用
在开始写代码前,我们要知道
项目初始化
zsh
go mod init xxxx
go mod init 命令详解
go mod init example/hello
这个命令的作用是初始化一个新的 Go 模块(module),可以把它理解为给你的 Go 项目创建一个"身份证"。
具体作用:
- 创建 go.mod 文件:这个命令会在当前目录下创建一个名为
go.mod
的文件 - 设置模块名称:
example/hello
就是这个模块的名称,相当于项目的唯一标识符 - 启用模块管理:告诉 Go 这个目录是一个独立的模块,可以管理自己的依赖
模块命名规范
模块路径通常采用以下形式:
zsh
<prefix>/<descriptive-text>
通俗理解:
想象你要开一家店:
go mod init
= 去工商局注册营业执照example/hello
= 你的店名go.mod
= 你的营业执照
实际例子:
bash
# 在项目目录下执行
go mod init example/hello
执行后会在当前目录生成一个 go.mod
文件,内容类似:
module example/hello
go 1.21
为什么需要这个命令?
- 依赖管理:Go 需要知道你的项目叫什么名字,才能正确管理第三方库
- 版本控制:确保不同版本的依赖包不会冲突
- 项目标识:让其他项目可以引用你的代码
注意事项:
example/hello
只是一个示例名称,实际项目中应该用有意义的名称- 通常使用 GitHub 仓库地址,如:
go mod init github.com/username/projectname
- 这个命令只需要在项目开始时执行一次
初次窥探
- 新建一个目录,在目录下使用
go mod init xxxx
命令初始化模块 - 创建一个文件
hello.go
,用于编写代码 hello.go
文件中
go
package main
import "fmt"
func main() {
fmt.Println("hello, world!")
}
- 运行
go run .
调用外部包中的代码
减少重复造轮子,当需要代码功能可能已由其他人实现时,可以查找具有可在代码中使用的函数的包。
- 使用外部模块的功能使您的打印消息更有趣。
- 访问
pkg.go.dev
并搜索quote
包. - 在搜索结果中,找到并单击
rsc.io/quote
包
- 访问
- 在模块目录中安装此包
go get rsc.io/quote
.- 如果在安装时,终端提示超时,可以通过配置代理后在下载包
bash<!-- 设置 GOPROXY 环境变量 --> go env -w GOPROXY=https://goproxy.cn,direct <!-- 查看当前 GOPROXY 设置 --> go env GOPROXY
- 在 Go 代码中,导入
rsc.io/quote
包并添加调用 到其 Go 函数。
go
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Hello())
}
- 出现报错可通过
go mod tidy
验证是否缺少模块,如果他找到缺失的模块会自动下载
bash
go mod tidy
# 结果
go: finding module for package rsc.io/quote