목차

Go defer 지연함수

  • defer를 호출한 함수가 종료되기 직전에 호출됨
  • 타 언어의 finally 문과 비슷
  • 주로 리소스 반환 등에 사용
  • Last In First Out (LIFO)
package main

import "fmt"

func start(t string) string {
    fmt.Println("start:", t)
    return t
}
func end(t string) {
    fmt.Println("end:", t)
}

func a() {
    defer end(start("b"))
    fmt.Println("in a")
}

func main() {

    a()
}