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)
}
浙公网安备 33010602011771号