静态链接与跨平台编译
Go 语言支持静态链接,生成的可执行文件不依赖外部库,非常适合跨平台开发。可以使用 Go 的标准库轻松编译出适用于不同操作系统的二进制文件。
云开发环境
控制结构
for 循环
在 Go 中,for 循环可以不带条件,相当于 while true:
for {
// 无限循环
}
switch 语句
switch 语句支持高级用法,可以在 case 后面加上判断条件:
switch {
case x > 0:
fmt.Println("Positive")
case x < 0:
fmt.Println("Negative")
default:
fmt.Println("Zero")
}
数据结构
数组
数组在 Go 中是值类型,大小固定,较少使用:
var a [5]int
切片
切片是动态数组,更常用:
s := make([]string, 3) // 创建一个长度为3的切片
s = append(s, "123") // 添加元素
subSlice := s[2:5] // 切片操作,不支持负数索引
地址与指针
make 类似于 new,用于创建切片、映射和通道:
s := make([]int, 5) // 创建一个长度为5的整数切片
映射(Map)
映射是键值对的集合:
m := make(map[string]int)
m["a"] = 1
v, ok := m["xxxxxxxxxx"] // 获取值,ok 为布尔值,表示键是否存在
delete(m, "a") // 删除键值对
循环与范围
range 关键字
range 用于遍历数组、切片、映射等:
arr := []int{1, 2, 3}
for index, num := range arr {
fmt.Printf("Index: %d, Value: %d\n", index, num)
}
map1 := map[string]int{"a": 1, "b": 2}
for k, v := range map1 {
fmt.Printf("Key: %s, Value: %d\n", k, v)
}
函数
基本函数
func add(a int, b int) int {
return a + b
}
多返回值
函数可以返回多个值,通常第二个值用于返回错误信息:
func test(a, b int) (v int, ok bool) {
// 逻辑处理
return v, ok
}
小结
Go 语言支持静态链接,生成的可执行文件不依赖外部库,非常适合跨平台开发。你可以使用 Go 的标准库轻松编译出适用于不同操作系统的二进制文件。
- 静态链接与跨平台编译:Go 语言生成的可执行文件不依赖外部库,支持跨平台编译。
- 云开发环境:使用 GitPod 进行云端开发。
- 控制结构:
for循环可以不带条件,switch语句支持高级用法。 - 数据结构:数组大小固定,切片是动态数组,映射是键值对集合。
- 函数:支持多返回值,通常第二个值用于返回错误信息。
- 指针:主要用于修改传入参数。
- 结构体:支持定义结构体和结构体方法。
- 错误处理:通过返回错误值来处理错误。
- JSON 处理:支持序列化和反序列化。
- 示例程序:包括基本示例、使用第三方 API 发送请求和 SOCKS5 代理服务器。