Go 语言入门指南
Go 语言(Golang)是一种简洁、高效、并发友好的编程语言,由 Google 开发,广泛应用于后端开发、微服务、云计算等领域。以下是 Go 语言的基础语法和常用特性解析,帮助新手快速入门。
1. Go 语言的基本特性
- 静态类型:变量类型在编译时确定。
- 高效并发:内置 goroutine 和 channel,轻松实现并发。
- 跨平台编译:支持直接编译为目标平台的可执行文件。
- 内置垃圾回收:简化内存管理。
- 丰富的标准库:提供网络、文件处理、数据编码等功能。
2. 基础语法
2.1 Hello, World
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
package main:定义程序的包。import "fmt":导入标准库的 fmt 包,用于格式化输出。func main():程序的入口函数。
2.2 变量与常量
变量声明
var x int = 10 // 显式声明
y := 20 // 简短声明(仅限函数内部)
常量声明
const Pi = 3.14
多变量声明
var a, b, c int = 1, 2, 3
d, e := "Hello", true
2.3 数据类型
- 基本类型:
- 整数:
int,int8,int16,int32,int64 - 浮点数:
float32,float64 - 布尔值:
bool - 字符串:
string
- 整数:
- 复合类型:
- 数组:
[5]int - 切片:
[]int - 映射(字典):
map[string]int - 结构体:
struct - 指针:
*int
- 数组:
2.4 条件与循环
条件语句
if x > 10 {
fmt.Println("x is greater than 10")
} else if x == 10 {
fmt.Println("x is 10")
} else {
fmt.Println("x is less than 10")
}
循环语句
for i := 0; i < 5; i++ {
fmt.Println(i)
}
Go 中没有 while 和 do-while,用 for 代替:
for x < 10 {
x++
}
2.5 函数
基本函数
func add(a int, b int) int {
return a + b
}
多返回值
func swap(x, y string) (string, string) {
return y, x
}
调用:
a, b := swap("Hello", "World")
fmt.Println(a, b) // 输出:World Hello
2.6 指针
func updateValue(x *int) {
*x = 42
}
var y int = 10
updateValue(&y)
fmt.Println(y) // 输出:42
2.7 数组和切片
数组
var arr = [5]int{1, 2, 3, 4, 5}
fmt.Println(arr[0]) // 访问第一个元素
切片
slice := []int{1, 2, 3, 4}
slice = append(slice, 5) // 动态添加元素
2.8 映射(map)
ages := map[string]int{
"Alice": 25,
"Bob": 30,
}
ages["Charlie"] = 35 // 添加键值对
delete(ages, "Bob") // 删除键值对
3. 并发特性
goroutine
go func() {
fmt.Println("Running in a goroutine")
}()
channel
ch := make(chan int)
go func() {
ch <- 42 // 发送数据
}()
value := <-ch // 接收数据
fmt.Println(value) // 输出:42
4. 常用工具
go run:运行 Go 文件。go build:编译生成可执行文件。go fmt:格式化代码。go test:运行测试。go mod:管理依赖。
5. 示例:简单 HTTP 服务器
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, Go Web!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
6. 学习资源
- 官方文档:golang.org/doc/
- Go 学习网站:tour.golang.org/