golang
[golang] defer 예제
'김용환'
2017. 9. 7. 11:58
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()