defer_tracing2.go 329 B

12345678910111213141516171819202122232425
  1. package main
  2. import "fmt"
  3. func trace(s string) string {
  4. fmt.Println("entering:", s)
  5. return s
  6. }
  7. func un(s string) {
  8. fmt.Println("leaving:", s)
  9. }
  10. func a() {
  11. defer un(trace("a"))
  12. fmt.Println("in a")
  13. }
  14. func b() {
  15. defer un(trace("b"))
  16. fmt.Println("in b")
  17. a()
  18. }
  19. func main() {
  20. b()
  21. }