单个defer
例一:
defer fmt.Print("aaaaaaaaaaaaaa")
fmt.Print("bbbbbbbbbbbbbb")
放在一个闭包上
func(){
defer fmt.Print("aaaaaaaaaaaaaa")
}()
fmt.Print("bbbbbbbbbbbbbb")
多个defer下
defer fmt.Print("aaa")
defer fmt.Print("bbb")
defer fmt.Print("ccc")
defer fmt.Print("ddd")
defer fmt.Print("eee")
defer fmt.Print("fff")
fmt.Print("bbbbbbbbbbbbbb")
func(){
defer fmt.Print("aaa")
defer fmt.Print("bbb")
defer fmt.Print("ccc")
defer fmt.Print("ddd")
defer fmt.Print("eee")
defer fmt.Print("fff")
}()
fmt.Print("bbbbbbbbbbbbbb")
报错!所返回的…
func test(x int) {
number := 100/x
fmt.Print(number)
}
func main(){
defer fmt.Print("aaa")
defer fmt.Print("bbbbbbbbbbbbbb")
defer fmt.Print("ccc")
test(0)
defer fmt.Print("ddd")
}
匿名函数
func main(){
a := 10
b := 20
defer func(x , y int){
fmt.Printf("a = %d , b = %d ",x,y)
}(a,b)
a = 111
b = 222
fmt.Printf("a = %d , b = %d ",a,b)
}