defer는 함수를 사용하면 해당 함수를 호출한 함수가 종료할 때 호출된다.
package main
import "fmt"
func main() {
s := [5]int{10, 20, 30, 40, 50}
for i, number := range s {
fmt.Println(i, number)
}
println("\nßdefer--")
for i, number := range s {
defer fmt.Println(i, number)
}
}
결과는 다음과 같다.
0 10
1 20
2 30
3 40
4 50
defer--
4 50
3 40
2 30
1 20
0 10
스택에 쌓인 것을 하나씩 종료 하는 것처럼 보인다.
보통 소켓을 정리할 때 많이 사용된다.
defer resp.Body.Close()
'golang' 카테고리의 다른 글
[golang] 매개 변수 받기 (0) | 2017.09.08 |
---|---|
[golang] 에러(error) 예제 (0) | 2017.09.07 |
[golang] interface(인터페이스) 예제 (0) | 2017.09.06 |
[golang] 함수.클로져 예제 (0) | 2017.09.06 |
[golang] 구조체 초기화/메소드 예제 (0) | 2017.08.30 |