流程控制语句
流控制关键字 for/if/else/switch/defer
for
go中的唯一循环结构,不能有括号,循环体包含在{}中
- for循环条件不加()
- for循环条件中的前置和后置语句可以为空
- for也是go里边的while
if
便携语句: if可以在条件之前执行一个简单的语句,且只能有一句; 便携语句中定义的变量只能在if else对应的语句块中使用
switch
if-else的简写形式
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("When is Saturday?")
today := time.Now().Weekday()
switch time.Saturday {
case today + 0:
fmt.Println("Today.")
case today + 1:
fmt.Println("Tomorrow.")
case today + 2:
fmt.Println("In two days.")
default:
fmt.Println("Too far away.")
}
}
defer
defer关键字修饰的语句会延迟执行,直到所在函数返回
延迟的函数调用被压入一个栈中,所在函数返回时,按照后进先出的规则进行处理