Go 语言零基础入门教程涵盖环境搭建、基础语法、核心特性及实战应用。内容包括变量类型、条件循环、函数定义,重点讲解切片、映射、结构体与错误处理机制。通过内置 HTTP 库与 Gin 框架实现接口开发,结合 GORM 操作 MySQL 数据库。适合初学者快速掌握 Go 语言核心能力,为高并发后端开发打下基础。
CryptoLab28 浏览
一、前置准备:先搞定环境和核心认知
1. Go 语言是什么?
Go(又称 Golang)是谷歌推出的编程语言,在云原生、高并发后端开发中应用广泛。特点包括:
快:运行速度接近 C/C++,编译速度快;
简单:语法简洁,适合快速上手;
强:天生支持高并发;
火:互联网大厂大量使用。
2. 必装工具
工具
作用
安装要点
Go
Go 语言核心环境
官网下载对应系统版本,自动配置环境变量
IDE
写 Go 代码的编辑器
新手首选 GoLand 或 VS Code+Go 插件
Git
代码版本管理
官网下载安装
Postman
调试接口用
免费版足够
3. 验证环境是否装好
打开命令行输入以下命令,能输出版本号即为成功:
# 查看 Go 版本
go version
二、第一部分:Go 基础语法
1. 第一个 Go 程序:Hello World
代码示例(新建 hello.go 文件):
// 声明包名:main 包是可执行程序的入口包package main
// 导入 fmt 包(格式化输入输出)import"fmt"// main 函数:程序入口,固定写法funcmain() {
// 打印到控制台(双引号包裹字符串)
fmt.Println("你好,Go!")
}
运行代码(两种方式):
# 方式 1:直接运行(开发时用)
go run hello.go
# 方式 2:先编译成可执行文件,再运行(部署时用)
go build hello.go
./hello
# Windows 下执行 hello.exe
关键要点:
Go 文件后缀是 .go,必须以 package 开头(main 包才能独立运行);
导入包用 import,比如 fmt 是系统内置的'输入输出包';
函数用 func 定义,main() 是程序唯一入口,没有返回值;
代码块用 {} 包裹,左大括号必须和函数名同行(Go 的强制规范);
每行代码结尾不用加分号(Go 自动补全)。
2. 变量与数据类型
核心数据类型:
类型
用途
示例
int
整数
var age int = 18
float64
小数
var salary float64 = 8000.5
string
字符串
var name string = "小明"
bool
布尔值
var isAdult bool = true
[]T
切片
var scores []int = []int{90, 85, 95}
变量声明的 3 种方式:
package main
import"fmt"funcmain() {
// 方式 1:完整声明var name string = "小明"var age int = 18
fmt.Println("方式 1:", name, age)
// 方式 2:类型推导var score = 92.5// 自动识别为 float64
fmt.Println("方式 2:", score)
// 方式 3:简短声明(函数内专用,最常用)
isPass := score >= 60// 等价于 var isPass bool = true
fmt.Println("方式 3:", isPass)
}
避坑点:
简短声明 := 只能在函数内用,全局变量必须用 var;
Go 是强类型语言,变量类型一旦确定不能改;
字符串拼接用 + 号。
3. 条件判断:if/else
代码示例:
package main
import"fmt"funcmain() {
score := 85// Go 的 if 不用加 (),代码块必须加 {}if score >= 90 {
fmt.Println("优秀")
} elseif score >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
// Go 特色:if 可以先执行语句,再判断if num := score / 10; num == 9 {
fmt.Println("90 分以上")
}
}
关键要点:
if 后的条件不用括号;
if 里可以先声明变量,变量仅在 if 块内有效;
Go 没有三元运算符,用 if/else 替代即可。
4. 循环:for
(1)基础 for 循环:
package main
import"fmt"funcmain() {
// 打印 1-10 的数字for i := 1; i <= 10; i++ {
fmt.Println(i)
}
// 计算 1-100 的和
sum := 0for i := 1; i <= 100; i++ {
sum += i
}
fmt.Println("1-100 的和:", sum)
}
(2)for 替代 while 循环:
i := 1for i <= 5 {
fmt.Println(i)
i++
}
关键要点:
Go 没有 while/do-while,所有循环都用 for;
循环内用 break 终止循环,continue 跳过当前次循环。
5. 函数
代码示例:
package main
import"fmt"// 定义函数:计算切片的平均分funccalculateAvg(scores []int)float64 {
sum := 0// range 遍历切片,返回索引和值for _, score := range scores {
sum += score
}
returnfloat64(sum) / float64(len(scores))
}
funcmain() {
scores := []int{80, 90, 85, 95}
avg := calculateAvg(scores)
fmt.Printf("平均分:%.1f\n", avg)
}