Skip to content

基础使用

在开始写代码前,我们要知道

项目初始化

zsh
go mod init xxxx

go mod init 命令详解

go mod init example/hello 这个命令的作用是初始化一个新的 Go 模块(module),可以把它理解为给你的 Go 项目创建一个"身份证"。

具体作用:

  1. 创建 go.mod 文件:这个命令会在当前目录下创建一个名为 go.mod 的文件
  2. 设置模块名称example/hello 就是这个模块的名称,相当于项目的唯一标识符
  3. 启用模块管理:告诉 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

为什么需要这个命令?

  1. 依赖管理:Go 需要知道你的项目叫什么名字,才能正确管理第三方库
  2. 版本控制:确保不同版本的依赖包不会冲突
  3. 项目标识:让其他项目可以引用你的代码

注意事项:

  • example/hello 只是一个示例名称,实际项目中应该用有意义的名称
  • 通常使用 GitHub 仓库地址,如:go mod init github.com/username/projectname
  • 这个命令只需要在项目开始时执行一次

初次窥探

  1. 新建一个目录,在目录下使用 go mod init xxxx 命令初始化模块
  2. 创建一个文件 hello.go,用于编写代码
  3. hello.go 文件中
go
package main

import "fmt"

func main() {
	fmt.Println("hello, world!")
}
  1. 运行 go run .

调用外部包中的代码

减少重复造轮子,当需要代码功能可能已由其他人实现时,可以查找具有可在代码中使用的函数的包。

  1. 使用外部模块的功能使您的打印消息更有趣。
    • 访问 pkg.go.dev 并搜索 quote 包.
    • 在搜索结果中,找到并单击 rsc.io/quote
  2. 在模块目录中安装此包 go get rsc.io/quote.
    • 如果在安装时,终端提示超时,可以通过配置代理后在下载包
    bash
    <!-- 设置 GOPROXY 环境变量 -->
    go env -w GOPROXY=https://goproxy.cn,direct
    
    <!-- 查看当前 GOPROXY 设置 -->
    go env GOPROXY
  3. 在 Go 代码中,导入 rsc.io/quote 包并添加调用 到其 Go 函数。
go
package main

import "fmt"

import "rsc.io/quote"

func main() {
	fmt.Println(quote.Hello())
}
  1. 出现报错可通过 go mod tidy 验证是否缺少模块,如果他找到缺失的模块会自动下载
bash
go mod tidy
# 结果
go: finding module for package rsc.io/quote

Released under the MIT License.