[golang] defer 예제

golang 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()





'golang' 카테고리의 다른 글

[golang] 매개 변수 받기  (0) 2017.09.08
[golang] 에러(error) 예제  (0) 2017.09.07
[golang] defer 예제  (0) 2017.09.07
[golang] interface(인터페이스) 예제  (0) 2017.09.06
[golang] 함수.클로져 예제  (0) 2017.09.06
[golang] 구조체 초기화/메소드 예제  (0) 2017.08.30
Posted by 김용환 '김용환'

댓글을 달아 주세요