流程控制语句
# go的流程控制语句 (opens new window)
# for
# 简单for
for i := 0; i < 10; i++ {
sum += i
}
1
2
3
2
3
# for 是 Go 中的 “while”
sum := 1
for sum < 1000 {
sum += sum
}
1
2
3
4
2
3
4
# 无限循环
for {
}
1
2
2
# if
# 正常if
if x < 0 {
return sqrt(-x) + "i"
}
1
2
3
2
3
# 简短if
-- 同 for 一样, if 语句可以在条件表达式前执行一个简单的语句。
if v := math.Pow(x, n); v < lim {
return v
}
1
2
3
4
2
3
4
# switch(默认每个case自带break)
# 有条件的
today := time.Now().Weekday()
switch time.Saturday {
case today + 0:
fmt.Println("Today.")
case today + 1:
fmt.Println("Tomorrow.")
default:
fmt.Println("Too far away.")
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 无条件的
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("Good morning!")
case t.Hour() < 17:
fmt.Println("Good afternoon.")
default:
fmt.Println("Good evening.")
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# defer
defer 语句会将函数推迟到外层函数返回之后执行。有点像java的finally
推迟的函数调用会被压入一个栈中。当外层函数返回时,被推迟的函数会按照后进先出的顺序调用。
1
2
2
上次更新: 2022/05/11, 20:26:42