目录
Go 语言教程 - 快速入门指南
🎯 Go 是什么?
- 创造者:Google(2009年发布)
- 特点:简单、高效、安全
- 用途:后端服务、云计算、区块链等
⚡ 快速安装
下载安装
- 访问官网:
https://golang.org - 下载对应系统版本
- 一键安装即可
验证安装
# 查看版本
go version
# 查看环境
go env
📁 项目结构
my-project/
├── src/ # 源代码
├── bin/ # 编译后的可执行文件
└── pkg/ # 包文件
提示:Go 1.11+ 可以用 go mod 管理项目,更简单!
📝 第一个 Go 程序
创建文件 hello.go:
package main // 声明包名
import "fmt" // 导入打印库
func main() {
fmt.Println("Hello, Go!") // 打印输出
}
运行程序:
go run hello.go
编译程序:
go build hello.go
./hello
🔑 基础语法
变量声明
// 三种方式
var name string = "小明" // 方式1
var age = 20 // 方式2(自动类型推断)
score := 95.5 // 方式3(最常用)
数据类型
// 基本类型
var isStudent bool = true // 布尔型
var score int = 100 // 整型
var price float64 = 99.99 // 浮点型
var name string = "Go" // 字符串
// 零值(默认值)
// int: 0, float: 0.0, string: "", bool: false
控制语句
// if-else
if score >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
// for循环(Go只有for一种循环)
for i := 0; i < 5; i++ {
fmt.Println(i)
}
// switch
grade := 'B'
switch grade {
case 'A':
fmt.Println("优秀")
case 'B':
fmt.Println("良好")
default:
fmt.Println("继续努力")
}
📦 函数定义
// 定义函数
func add(a int, b int) int {
return a + b
}
// 调用函数
result := add(3, 5)
fmt.Println(result) // 输出: 8
// 多返回值
func getUser() (string, int) {
return "小明", 20
}
name, age := getUser()
🎪 数组和切片
数组(长度固定)
// 声明数组
var arr [3]int = [3]int{1, 2, 3}
var arr2 = [...]int{1, 2, 3, 4} // 自动计算长度
切片(长度可变,更常用)
// 创建切片
slice1 := []int{1, 2, 3}
slice2 := make([]int, 3) // 长度3,容量3
// 添加元素
slice1 = append(slice1, 4, 5) // [1 2 3 4 5]
// 切片操作
fmt.Println(slice1[1:3]) // [2 3](获取索引1到2)
🗺️ Map(字典/哈希表)
// 创建map
scoreMap := make(map[string]int)
scoreMap["小明"] = 90
scoreMap["小红"] = 85
// 或者直接创建
ages := map[string]int{
"小明": 20,
"小红": 19,
}
// 访问
age := ages["小明"]
// 检查键是否存在
if value, exists := ages["小李"]; exists {
fmt.Println(value)
} else {
fmt.Println("不存在")
}
🏗️ 结构体(Struct)
// 定义结构体
type Person struct {
Name string
Age int
}
// 使用结构体
var p1 Person
p1.Name = "小明"
p1.Age = 20
// 或直接创建
p2 := Person{Name: "小红", Age: 19}
🧩 接口(Interface)
// 定义接口
type Animal interface {
Speak() string
}
// 实现接口
type Dog struct{}
func (d Dog) Speak() string {
return "汪汪!"
}
func main() {
var a Animal = Dog{}
fmt.Println(a.Speak()) // 汪汪!
}
📤 错误处理
// 标准错误处理方式
result, err := someFunction()
if err != nil {
fmt.Println("出错啦:", err)
return
}
fmt.Println("结果:", result)
⚙️ 常用命令速查
# 运行程序
go run 文件名.go
# 编译程序
go build 文件名.go
# 安装程序(到GOPATH/bin)
go install
# 下载依赖包
go get 包名
# 初始化模块(新项目)
go mod init 项目名
# 整理依赖
go mod tidy
💡 小贴士
- 包管理:使用
go mod,不用管 GOPATH - 代码格式:
gofmt自动格式化代码 - 变量命名:小驼峰,如
userName - 导包:导入不用的包会报错
- 编译快:Go 编译速度非常快
🚀 下一步学习
- Web开发:学习
net/http包 - 并发编程:学习 goroutine 和 channel
- 数据库:学习 database/sql 包
- 测试:学习
go test命令
一句话总结:Go = 简单语法 + 高性能 + 好用的工具链,适合写服务器程序!
浙公网安备 33010602011771号