golang——defer

package main

import "fmt"

func a() int{
	var i int
	defer func(){
		i++
		fmt.Println("defer2:",i)
	}()
	defer func(){
		i++
		fmt.Println("defer1:",i)
	}()
	return i // 返回i的副本
}

func b()(i int){
	defer func(){
		i++
		fmt.Println("defer2:",i)
	}()
	defer func(){
		i++
		fmt.Println("defer1:", i)
	}()
	return i
}

func main() {
	fmt.Println(a())
	fmt.Println("-------")
	fmt.Println(b())
}
defer1: 1
defer2: 2
0
-------
defer1: 1
defer2: 2
2
发布了151 篇原创文章 · 获赞 72 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/liyuxing6639801/article/details/104751850