Go语言(又称Golang)是由Google开发的一种静态强类型、编译型、并发型编程语言,具有垃圾回收功能,并且语法简洁、执行高效。它结合了Python的易用性与C/C++的运行效率,已成为云原生、微服务、区块链等领域的首选语言之一。
2007年,三位计算领域巨匠——Robert Griesemer、Rob Pike 和 Ken Thompson(Unix操作系统、UTF-8编码的创造者之一)在Google内部开始设计Go语言。他们希望创造一门没有C++那样复杂、同时避免Python等动态语言性能瓶颈的新语言。2009年11月,Go语言正式开源,随后迅速获得全球开发者关注。如今,Go已成为Docker、Kubernetes、Etcd、Prometheus等顶级开源项目的核心语言。
创建文件 main.go,写入以下代码:
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界!")
fmt.Printf("Go语言学习之旅开始于: %s\n", "2025")
}
运行方式:
$ go run main.go
Hello, 世界!
Go语言学习之旅开始于: 2025
# 或者编译为二进制文件
$ go build main.go
$ ./main # Linux/macOS
# main.exe # Windows
解析:package main 定义可执行程序,import "fmt" 引入格式化I/O包,func main() 为程序入口。Go语言强制左花括号不换行,且未使用的导入或变量会引发编译错误,保证了代码整洁性。
Go标准库的 net/http 包仅需几行代码即可启动高性能HTTP服务:
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "<h1>Hello, Go 开发者!</h1><p>并发处理请求轻松自如。</p>")
}
func main() {
http.HandleFunc("/", helloHandler)
http.ListenAndServe(":8080", nil) // 监听8080端口
}
编译运行后访问 http://localhost:8080,即可看到响应。Go的HTTP库原生支持高并发,每个请求在独立的goroutine中处理,开发效率极高。
只需在函数调用前加上 go 关键字,即可启动并发任务:
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 3; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world") // 启动并发goroutine
say("hello") // 主函数中运行
}
// 可能的输出:hello world hello world hello world (顺序交错)
Docker、Kubernetes、Istio、Etcd 等核心云原生项目均基于Go构建,高效利用系统资源,且部署简单。
Go生态拥有 go-kit、micro、gin、echo等框架,配合原生并发,轻松实现高吞吐微服务架构。
跨平台编译、无依赖单一二进制文件,使Go成为开发运维工具的首选(如kubectl、terraform插件)。
TiDB、InfluxDB、CockroachDB 等分布式数据库均选用Go,充分发挥其并发与网络模型优势。
无论你是后端开发、系统工程师、还是DevOps从业者,Go语言都能显著提升你的生产力。接下来的章节将逐步深入:环境安装、基础语法、并发模型、标准库实战等。