golang defer使用

package main

import "fmt"

/**

defer 使用
当用defer时后面程序将最后执行
(1)会将后面的程序压入栈中
(2)栈特点先进后出原则

输出结果
third line
second line
first line
5
通过分析可以发现 没有defer 优先输出,再进行比较谁先压入然后再输出
*/

func testDefer(num1 int, num2 int) int {
defer fmt.Println("first line")
defer fmt.Println("second line")
fmt.Println("third line")
sum := num1 + num2
return sum
}

func main() {
sum := testDefer(2, 3)
fmt.Println(sum)

}

posted @ 2023-11-06 14:09  北京小小鸟  阅读(5)  评论(0)    收藏  举报