基础使用
在开始写代码前,我们要知道
项目初始化
zsh
go mod init xxxxgo 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
CodeVortex