go的流程控制语句

for

简单for

for i := 0; i < 10; i++ {
		sum += i
	}

for 是 Go 中的 “while”

sum := 1
	for sum < 1000 {
		sum += sum
	}

无限循环

for {
	}

if

正常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
 推迟的函数调用会被压入一个栈中。当外层函数返回时,被推迟的函数会按照后进先出的顺序调用。