golang中一些控制结构 | 青训营

77 阅读2分钟

控制结构

在Go语言中,有以下几种常见的控制结构:

  1. 条件语句(if-else):用于根据条件来执行不同的代码块。例如:
if condition {
    // 条件为真时执行的代码块
} else {
    // 条件为假时执行的代码块
}
  1. 循环语句(for):用于重复执行一段代码块。有三种形式:for循环、for-range循环和无限循环。例如:
// for循环
for initialization; condition; increment {
    // 循环体
}

// for-range循环
for index, value := range collection {
    // 循环体
}

// 无限循环
for {
    // 循环体
}
  1. 开关语句(switch):用于根据表达式的值执行不同的代码块。可以使用多个case和default来匹配不同的值。例如:
switch expression {
case value1:
    // 匹配value1时执行的代码块
case value2:
    // 匹配value2时执行的代码块
default:
    // 没有匹配时执行的代码块
}
  1. 跳转语句(break、continue、goto):用于在循环或条件语句中控制程序的流程。break用于跳出当前循环或开关语句,continue用于终止当前循环的迭代并进入下一次迭代,goto用于无条件地跳转到指定的标签位置。

这些控制结构可以帮助你在Go语言中实现不同的逻辑和流程控制。

range

如果只需要第一项(key),就丢弃第二个

for key := range m {
    if key.expired() {
        delete(m,key)
    }
}

如果只需要第二项,则把第一项置为下划线

sum := 0
for _, value := range array {
    sum += value
}

return

尽早return:一旦有错误发生,马上返回

f,err := os.Open(name)
if err != nil {
    return err
}
d,err := f.Stat()
if err != nil {
    f.Close()
    return err
}
codeUsing(f,d)

函数

  • 函数采用命名的多值返回
  • 传入变量和返回变量以小写字母开头 func nextInt(b []byte, pos int)(value, nextPos int) 在godoc生成的文档中,带有返回值的函数声明更利于理解

错误处理

  • error作为函数的值返回,必须对error进行处理
  • 错误描述如果是英文必须为小写,不需要标点结尾
  • 采用独立的错误流进行处理