go语言入门 | 豆包MarsCode AI刷题

49 阅读2分钟

静态链接与跨平台编译

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 代理服务器。