Go语言第一章(入门)

Go(又称 Golang)是Google在 2007 年推出、2009 年正式开源的静态编译型编程语言,由罗伯特・格瑞史莫(Rob Pike)、肯・汤普森(Ken Thompson,C 语言、Unix 之父)、罗伯特・格雷厄姆三人主导开发。

我们带入神话故事来理解Go语言:

  1. Unix ------ 鸿钧老祖(定系统天道规则)
  2. C 语言 ------ 造化玉碟(鸿钧核心基础功法,万物底层根基)
  3. BSD / System V / Linux ------ 三清三大圣人(鸿钧三大弟子,各自演化道统)
  4. C++ ------ 太上老君(在基础功法上炼化灵宝,功能最全,复杂大型基建专用)
  5. Go ------ 鸿钧后人新创简化功法(Ken Thompson 是 Unix/C 元老,简化 C,适配云洪荒)
  6. Java ------ 西方接引道人(套一层虚拟机结界,跨天地通用,但厚重笨重)
  7. Python ------ 散修懒人功法(上手简单,封装底层,不用苦修基础内功)
  8. Windows ------ 域外魔神,自成一方小世界,早年排斥鸿钧道统

Go 语言特点

Go 的设计哲学是「少即是多」------ 砍掉冗余特性,专注工程效率与可维护性。以下是它最核心的几大特点:

  1. 原生并发:基于 goroutine 与 channel 实现 CSP 并发模型,协程初始栈仅数 KB,远比传统 OS 线程轻量,由运行时统一调度,天然适合高并发服务
  2. 自动内存管理:内置 GC 垃圾回收器,无需像 C/C++ 那样手动申请与释放内存,在开发效率与运行安全之间取得平衡
  3. 静态编译:编译产物为单一可执行文件,无外部运行时依赖,拷贝到目标机器即可运行,部署极其简单
  4. 跨平台编译 :内置交叉编译能力,在 macOS 上一条 go build 命令即可产出 Linux、Windows 等平台的二进制文件
  5. 语法简洁:仅 25 个关键字,用组合替代继承,拒绝过度设计,代码易读易写,学习曲线平缓
  6. 编译速度极快:大型项目完整编译通常在秒级完成,修改代码后几乎即编即跑,开发体验流畅
  7. 标准库强大 :net/http、encoding/json、context 等核心库久经生产验证,网络、序列化、并发控制等常见需求开箱即用
  8. 工具链一体化 :go mod 管理依赖、go test 运行测试、go fmt 统一格式,从编码到发布全流程有官方工具支撑

如何安装 Go 语言

1. 下载安装包

Go 语言的安装包可以在 Go 语言官网 下载。

选择你所对应的操作系统,点击下载安装包。

2. 安装 Go 语言

一路下一步,直到安装完成。

3. 验证安装

在终端输入 go version 命令,如果显示 Go 语言的版本信息,则说明安装成功。(目前主包用的是1.26.4版本)

4. 编辑器下载

推荐使用 VS Code 编辑器,因为Go语言官方推荐使用VS Code作为开发工具。下载完成一路下一步,直到安装完成。

5. 配置go语言插件

在VS Code中安装Go语言插件,安装完成后,VS Code会自动配置Go语言环境。

为什么要出这个教程以及为什么要学习 Go 语言

为什么要写这个教程

Go 的中文资料不少,但质量参差不齐------有的太浅,有的直接翻译官方文档,缺少一条清晰的学习路径。写这个系列,是希望给零基础或从其他语言转过来的同学一份系统化、能跟着动手的入门指南,少走弯路。

为什么要学 Go

  1. 就业市场需求大:字节、腾讯、美团、百度等大厂的后端、基础架构、中间件岗位大量招聘 Go 开发;云原生、微服务方向几乎绕不开它
  2. 薪资有竞争力:具备 Go + 云原生(K8s、Docker)技能的工程师,在市场上通常比纯 CRUD 后端更有议价空间
  3. 入门门槛相对友好:语法简洁、关键字少,有 Python、Java 或前端 JS 基础的同学,通常一两周就能写出可运行的服务
  4. 前端转全栈的务实选择:纯前端岗位竞争加剧,掌握 Go 后可以独立完成后端 API、中间层逻辑,向全栈或平台工程方向发展
  5. 云原生时代的「官方语言」:Docker、Kubernetes、Prometheus、Etcd 等核心基础设施均用 Go 编写,学 Go 有助于真正理解这些工具的底层原理
  6. 区块链 / Web3 的主流技术栈:以太坊 Go 客户端 Geth、Hyperledger Fabric 等均基于 Go,相关岗位普遍将其列为硬性要求
  7. 适用场景广:微服务 API、命令行工具、爬虫、消息队列、网关、DevOps 脚本------从业务到基建都能覆盖
  8. 性能与开发效率的平衡:编译快、部署简单、并发模型清晰,在需要高并发但又不想陷入 C++ 复杂度的场景里,Go 是性价比很高的选择

如果你属于以下任一情况,都很适合从这里开始:

  • 想转行后端或全栈,不知道从哪下手
  • 做运维 / 云计算,想读懂 K8s 生态的代码
  • 在校或转行,希望掌握一门「好找工作」的实用语言
  • 已经会一点编程,想系统补全 Go 的知识体系

Hello World

我们可以新建一个hello.go文件,然后输入以下代码:

go 复制代码
package main
import "fmt"
func main() {
	fmt.Println("Hello, World!")
}

然后我们打开终端,输入go run hello.go命令,运行程序。

bash 复制代码
go run hello.go

输出> Hello, World!

package main

go 复制代码
package main
  1. package main = 告诉 Go 编译器,这是程序的入口包(可执行程序)。
  2. Go 官方规定,程序入口必须叫 main,名字是固定的,不能修改。

例如我改成 aaa 会报错:

go 复制代码
package aaa

import "fmt"

func main() {
	fmt.Println("Hello, World!")
}
bash 复制代码
package command-line-arguments is not a main package # 错误提示

import "fmt"

导入(Import)Go 标准库中的 fmt 包,让当前文件可以使用它提供的功能。

  1. fmt:Go 官方提供的格式化输入输出包。
  2. Println():fmt 包中的一个函数,用来打印内容并换行。

func main()

  1. func main():定义一个名为 main 的函数,这是 Go 程序的入口函数。
  2. {}:main 函数的代码块,必须有。
  3. fmt.Println("Hello, World!"):调用 fmt 包中的 Println 函数,打印 "Hello, World!" 字符串。

作业

  1. 修改 hello.go 文件,将 "Hello, World!" 改成 "Hello, Go!"。
  2. 运行程序,观察输出结果。
相关推荐
IT_陈寒1 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
不才不才不不才3 小时前
Spring 源码系列(29): 20 道高频面试题源码级解析合集
java·后端·spring
索隆zoro3 小时前
Army 的可插拔架构:army-jdbc 与方言模块
java·后端
小蒜学长4 小时前
校园社团招新网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·校园社团招新网站
蜗牛互联网5 小时前
从Barclays扩大Claude部署看受监管软件工程的责任重分配
java·大数据·人工智能·后端·软件工程
周杰伦fans6 小时前
C#对话摘要降低Token消耗
人工智能·后端·c#
做系统的大强7 小时前
脚本说 PASS、OS 读全零 —— 到底是谁在撒谎?
后端·操作系统
code2cat8 小时前
【随笔】MCP资源更新订阅:通知到达以后,Agent怎样刷新旧资料
java·后端·开发工具·ai agent·mcp
福兮说9 小时前
Go slices 包的七个坑:Delete 把旧切片清零、Insert 时而写穿、SortFunc 不稳定(Go 1.25 实跑)
go
Harvil_9 小时前
任务跑一半,API 突然报“对话超长“断流:我给 Agent 修的紧急逃生通道
后端