Go语言入门教程:快速掌握基础与常见用法
一、Go语言
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型编程语言,具有以下特点:
- 简洁的语法
- 高效的编译执行
- 强大的并发支持
- 丰富的标准库
- 跨平台支持
二、环境搭建
- 下载安装Go:https://golang.org/dl/
- 配置环境变量(GOROOT、GOPATH)
- 验证安装:
go version
三、基础语法
1. Hello World
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
2. 变量与常量
// 变量声明
var name string = "Go"
var age = 10 // 类型推断
height := 175 // 简短声明
// 常量
const PI = 3.14
const (
StatusOK = 200
StatusNotFound = 404
)
3. 基本数据类型
- 整型:int, int8, int16, int32, int64
- 浮点型:float32, float64
- 布尔型:bool
- 字符串:string
- 派生类型:指针、数组、结构体、函数、接口等
4. 控制结构
// if-else
if x > 10 {
fmt.Println("x大于10")
} else if x > 5 {
fmt.Println("x大于5")
} else {
fmt.Println("x小于等于5")
}
// for循环
for i := 0; i < 10; i++ {
fmt.Println(i)
}
// while循环(Go中没有while关键字)
sum := 1
for sum < 1000 {
sum += sum
}
// switch
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X")
case "linux":
fmt.Println("Linux")
default:
fmt.Printf("%s.\n", os)
}
四、函数
// 基本函数
func add(a int, b int) int {
return a + b
}
// 多返回值
func swap(x, y string) (string, string) {
return y, x
}
// 命名返回值
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
// 可变参数
func sum(nums ...int) int {
total := 0
for _, num := range nums {
total += num
}
return total
}
五、复合数据类型
1. 数组与切片
// 数组
var a [5]int
b := [3]int{1, 2, 3}
// 切片(动态数组)
s := make([]int, 5) // 长度5
s = append(s, 1) // 追加元素
fmt.Println(s[1:3]) // 切片操作
2. Map
m := make(map[string]int)
m["age"] = 25
value, exists := m["age"] // 检查键是否存在
delete(m, "age") // 删除键
3. 结构体
type Person struct {
Name string
Age int
}
p := Person{"Alice", 20}
p.Age = 21
六、并发编程
1. Goroutine
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world") // 启动goroutine
say("hello")
}
2. Channel
ch := make(chan int)
// 发送数据
go func() {
ch <- 1
}()
// 接收数据
value := <-ch
fmt.Println(value)
// 带缓冲的channel
ch := make(chan int, 2)
ch <- 1
ch <- 2
七、错误处理
// 错误接口
type error interface {
Error() string
}
// 常见用法
result, err := someFunction()
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(result)
八、常用标准库
fmt
- 格式化I/Oos
- 操作系统功能io/ioutil
- I/O实用函数net/http
- HTTP客户端和服务器encoding/json
- JSON编码解码time
- 时间处理sync
- 同步原语
九、项目结构
典型的Go项目结构:
project/
├── go.mod // 模块定义
├── go.sum // 依赖校验
├── main.go // 主程序
├── pkg/ // 库代码
└── internal/ // 内部代码
十、进阶学习方向
- 接口与反射
- 包管理与模块系统
- 测试与性能分析
- 网络编程
- 数据库操作
- Web框架(如Gin、Echo)
通过以上内容,你应该已经掌握了Go语言的基础知识。接下来可以通过实际项目练习来巩固所学内容。