for#
简单for#
for i := 0; i < 10; i++ {
sum += i
}
for 是 Go 中的 “while”#
sum := 1
for sum < 1000 {
sum += sum
}
无限循环#
正常if#
if x < 0 {
return sqrt(-x) + "i"
}
简短if#
-- 同 for 一样, if 语句可以在条件表达式前执行一个简单的语句。
if v := math.Pow(x, n); v < lim {
return v
}
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.")
}
无条件的#
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.")
}
defer#
defer 语句会将函数推迟到外层函数返回之后执行。有点像java的finally
推迟的函数调用会被压入一个栈中。当外层函数返回时,被推迟的函数会按照后进先出的顺序调用。