news 2026/8/14 16:47:51

Go 语言入门笔记(一):从零搭环境到跑通第一个程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Go 语言入门笔记(一):从零搭环境到跑通第一个程序

最近因为项目里开始用 Go 写一些高并发的服务,再加上面试的时候发现不少岗位都要求“熟悉 Go 语言”,索性就趁这个机会从头系统地学一遍。输出倒逼输入,边学边记,这系列笔记就当是我的公开学习日志了。第一篇就从最基础的环境搭建开始,目标是跑通一行Hello, World


1. 装 Go:省心的方法和踩过的坑

1.1 官方下载(推荐)

直接去 Go 官网的下载页面下载对应系统的安装包,目前最新稳定版是 go1.22。Windows 下双击.msi一路下一步就行,Mac 可以用.pkg,Linux 下直接解压tar.gz放到/usr/local

我当时图省事在 Ubuntu 上直接apt install golang-go,结果版本巨老,连 modules 支持都不太完善,后来又乖乖去官网下了二进制包。建议一定用官方渠道,版本至少 go1.18 以上,因为后面讲的泛型、工作区这些新特性老版本根本不支持。

1.2 环境变量到底怎么设

装完之后,安装程序一般会自动把 Go 的 bin 目录加到PATH里,没加的话可以手动加一下:

# 类 Unix 系统加到 ~/.bashrc 或 ~/.zshrc export PATH=$PATH:/usr/local/go/bin

然后聊几个容易迷糊的环境变量:

  • GOROOT:Go 语言的安装路径。现在基本不用手动设了,Go 自己知道。
  • GOPATH:老版本里必须设的工作目录,现在有了 Go Modules 之后,这个变量更多是用来存放go get下载的依赖和工具,一般默认为~/go

验证一下安装成果:

go version go env GOROOT GOPATH GOPROXY

输出版本号和路径就没问题了。


2. 第一个程序:Hello World 的正确打开方式

2.1 新建项目目录

习惯用 Modules,所以不会像以前那样必须在$GOPATH/src下创建代码。随便找个地方,新建个文件夹就行。

mkdir hello-go && cd hello-go

2.2 初始化模块

虽然不是必须的,但我建议从一开始就用 module 管理,哪怕只有一个文件。

go mod init hello

这会生成一个go.mod文件,内容很简单:

module hello go 1.22

2.3 写代码

新建main.go

package main import "fmt" func main() { fmt.Println("Hello, 世界") }

2.4 跑起来

两种方式:

  • go run main.go:编译并运行,适合开发调试,但会留下临时文件。

  • go build:生成可执行文件(Linux 下是hello,Win 下是hello.exe),再运行。

第一次跑看到控制台打出Hello, 世界的时候,有种重新学编程的奇妙兴奋感。


3. 这五行代码到底干了啥

老鸟可以跳过,新手朋友建议瞄一眼:

  • package main:定义一个主包,可执行程序必须叫main包。

  • import "fmt":导入格式化 I/O 包,用来打印东西。

  • func main():程序的入口函数,没有参数,没有返回值,必须是main包的main函数,和 C 一样。

  • fmt.Println:打印一行,自动加换行。大写字母开头的函数才能被外部使用,也就是“导出”规则,这个后面会反复提到。

这里有个我当时犯的傻:把文件名起成了main_test.go,结果go run死活不认,因为 Go 把_test.go结尾的文件当成测试文件了。


4. 下一步学什么

环境好了,程序也跑通了。下一章准备梳理 Go 的变量声明那套“反直觉”的语法,什么var:=、多变量赋值这些,特别是和 C/Java 习惯打架的地方,我会把踩坑过程记下来。

如果这篇文章对你有帮助,欢迎点赞收藏,也欢迎在评论区纠正我理解不到位的地方,一起扎实学下去。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 16:23:59

动态规划专练:力扣第1035、392题

力扣第1035题-不相交的线1.本题和力扣第1143题-最长公共子序列一模一样,不能让线相交本质上就是不能走回头路,相对顺序不能改变,即公共子序列需要按顺序排列。完整代码如下:1. int maxUncrossedLines(int* nums1, int nums1Size, …

作者头像 李华
网站建设 2026/8/14 16:23:20

十大最佳 AI 编码工具

目录 最佳的​​AI编码工具有哪些? IDEs 1. Cursor 2. GitHub Copilot 3. Codeium 对话式人工智能 4. Claude 5. ChatGPT 6. DeepSeek 7. Perplexity AI 8. Grok 9. Bolt.new 10. v0 作者:Vercel 测试免费的AI编程工具 Bolt.New v0 结论…

作者头像 李华