控制结构
在Go语言中,有以下几种常见的控制结构:
- 条件语句(if-else):用于根据条件来执行不同的代码块。例如:
if condition {
// 条件为真时执行的代码块
} else {
// 条件为假时执行的代码块
}
- 循环语句(for):用于重复执行一段代码块。有三种形式:for循环、for-range循环和无限循环。例如:
// for循环
for initialization; condition; increment {
// 循环体
}
// for-range循环
for index, value := range collection {
// 循环体
}
// 无限循环
for {
// 循环体
}
- 开关语句(switch):用于根据表达式的值执行不同的代码块。可以使用多个case和default来匹配不同的值。例如:
switch expression {
case value1:
// 匹配value1时执行的代码块
case value2:
// 匹配value2时执行的代码块
default:
// 没有匹配时执行的代码块
}
- 跳转语句(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进行处理
- 错误描述如果是英文必须为小写,不需要标点结尾
- 采用独立的错误流进行处理