1. package main
    2. import "fmt"
    3. func func1(){
    4. fmt.Println("A")
    5. }
    6. func func2(){
    7. fmt.Println("B")
    8. }
    9. func func3(){
    10. fmt.Println("C")
    11. }
    12. func main() {
    13. //先进后出
    14. defer func1()
    15. defer func2()
    16. defer func3()
    17. }
    18. /*
    19. C
    20. B
    21. A
    22. */
    1. package main
    2. import "fmt"
    3. func deferFunc() int {
    4. fmt.Println("defer...")
    5. return 0
    6. }
    7. func returnFunc() int {
    8. fmt.Println("return")
    9. return 0
    10. }
    11. func returnAndDefer() int {
    12. defer deferFunc()
    13. return returnFunc()
    14. }
    15. func main() {
    16. //return之后的语句先执行
    17. //defer后的语句后执行
    18. returnAndDefer()
    19. }