[Go] defer는 역순으로 호출된다.
함수가 종료되기 직전에 실행해야 하는 코드가 있을 수 있다. 대표적으로 파일이나 소켓 핸들처럼 OS 내부 자원을 사용하는 경우이다. 이 같은 자원은 OS 내부 자원이기 때문에 반드시 쓰고 나서 OS에 되돌려줘야 한다. 파일 작업 이후 반드시 파일 핸들을 반환해야 하기 때문에 이렇게 잊지 않고 처리해야 하는 코드가 있을 때 사용하는 것이 defer 이다. defer 명령문 이와 같이 적으면 명령문이 바로 실행되는 게 아닌 해당 함수가 종료되기 직전에 실행되도록 지연된다. 아래 예제를 살펴보자. package main import ( "fmt" "os" ) func main() { f, err := os.Create("test.txt") if err != nil { fmt.Println("Failed to ..
Golang
2022. 7. 28. 20:50