go 多个defer调用

package main

import "fmt"
//结论:在链式调用中,所有defer 会被放到最后执行。第一个调用的defer语句,最后一个执行
func a(){
	defer func() {
		fmt.Println("defer a")
	}()
	fmt.Println("a")
	b()
}
func b()  {
	defer func() {
		fmt.Println("defer b")
	}()
	fmt.Println("b")
	c()
}
func c()  {
	fmt.Println("c")
	defer func() {
		fmt.Println("defer c")
	}()
}
func main(){
	a()
	/*
	输出:
	a
	b
	c
	defer c
	defer b
	defer a

	*/
}

  

go 多个defer调用

上一篇:在用VS2010连接oracle数据库时ORA-12504错误


下一篇:ORA-06502: PL/SQL: numeric or value error: character to number conversion error 错误的解决方法