当前位置:首页 > 技术 > 正文内容

Go 开发环境搭建与快速入门

访客 技术 2026年6月19日 1

安装 Go 环境

首先从官方下载页面获取对应操作系统的安装包。

Windows 安装方式

  • MSI 安装版go1.20.5.windows-amd64.msi,安装向导可自动配置全局环境变量。
  • ZIP 免安装版go1.20.5.windows-amd64.zip,解压后手动添加环境变量即可全局使用。

Linux 安装步骤

# 1. 下载安装包
wget https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz

# 2. 解压到 /usr/local
tar -C /usr/local -zxvf go1.21.0.linux-amd64.tar.gz

# 3. 配置环境变量(选择其一)
# 选项A:仅当前用户
echo "export GOROOT=/usr/local/go\nexport PATH=$PATH:$GOROOT/bin" >> ~/.bash_profile && source ~/.bash_profile

# 选项B:系统全局
# vim /etc/profile 添加以下内容
# export GOROOT=/usr/local/go
# export PATH=$PATH:$GOROOT/bin
# source /etc/profile

# 4. 验证安装
go version

常用命令速查

基础操作

查看版本go version
查看配置go env(加 -json 输出 JSON 格式)
运行测试go test(在包含 *_test.go 文件的目录执行)

环境变量配置

# 启用模块模式(推荐)
go env -w GO111MODULE=on

# 设置代理(解决下载慢问题)
go env -w GOPROXY=https://goproxy.cn,direct

# 修改项目工作目录
go env -w GOPATH=/your/path

# 修改构建缓存目录
go env -w GOCACHE=/your/cache

# 恢复默认值
go env -u GOROOT

依赖管理

# 下载依赖
go get github.com/xxx/package@latest     # 最新版本
go get github.com/xxx/package@v1.2.3     # 指定版本
go get github.com/xxx/package@commitHash # 指定提交

# 查看可下载版本
go list -m -versions github.com/xxx/package

# 更新所有依赖
go get -u

go mod 命令详解

# 初始化模块(创建 go.mod)
go mod init <moduleName>

# 下载依赖到本地缓存
go mod download

# 编辑 go.mod(可配合 -json, -require, -exclude 使用)
go mod edit

# 查看依赖关系图
go mod graph

# 清理无用依赖
go mod tidy

# 验证依赖完整性
go mod verify

# 清除所有本地依赖(慎用)
go clean -modcache

依赖查找规则:优先取最新 release tag,若无则取最新 commit。
go.mod 包含 modulerequirereplaceexclude 四个指令,go.sum 记录依赖版本与哈希值。

快速入门示例

// 1. 创建项目目录
// mkdir myproject && cd myproject

// 2. 初始化模块
// go mod init myproject

// 3. 编写 main.go
package main

import "fmt"

func main() {
    fmt.Println("Hello Go!")
}

// 4. 运行
// go run main.go

通过 go get 下载第三方包,或使用 go mod tidy 自动拉取代码中 import 的依赖。可利用 go list -m -u -json <package> 查看依赖详情。

标签: Gogo mod

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。