Go(Golang)由 Google 开发,以简洁的语法和原生并发支持著称,是云原生时代(Docker/Kubernetes 都是 Go 写的)的热门语言。

一、Hello World

package main

import "fmt"

func main() {
    fmt.Println("Hello, Go!")
}
go run main.go     # 直接运行
go build main.go   # 编译成可执行文件

二、语法特点

三、goroutine:轻量级线程

这是 Go 的杀手锏。用 go 关键字即可启动一个并发任务,开销极小:

func say(s string) {
    fmt.Println(s)
}

func main() {
    go say("hello")   // 并发执行
    go say("world")
    time.Sleep(time.Second)  // 等待 goroutine
}

四、channel:协程间通信

goroutine 之间用 channel 传递数据,避免共享内存的竞态问题:

ch := make(chan int)

go func() {
    ch <- 42      // 发送
}()

v := <-ch          // 接收
fmt.Println(v)
Go 的并发哲学:"不要用共享内存来通信,而要用通信来共享内存"。channel 是实现这一思想的核心。

五、sync.WaitGroup 等待

实际中用 WaitGroup 优雅地等待所有 goroutine 完成,比 Sleep 可靠:

var wg sync.WaitGroup
for i := 0; i < 5; i++ {
    wg.Add(1)
    go func(n int) {
        defer wg.Done()
        fmt.Println(n)
    }(i)
}
wg.Wait()

六、小结

Go 的魅力在于"简单且强大":语法简洁上手快,并发模型优雅高效。适合写后端服务、命令行工具、云原生组件。值得后端工程师学习。