2012년 4월 25일 수요일

defer

function.


defer 라는 키워드.


함수실행을 연기하는기능.. 실행시점을 뒤로 미루는 기능..

다음 예제에서는 func1() 의 실행시점이 메인함수가 종료되기 바로 직전까지 연기된다.



package main


import "fmt"


func main() {    


defer func1();

func2();
}


func func1()  {
fmt.Println( "연기하다.");
}


func func2()  {
fmt.Println( "실행하다.");
}



















C 언어에서는 함수를 호출하는 순서가 실행순서와 같다.
즉, 코드상의 위치와 실행시간이 일치한다.
즉, 위치와 시간이 일치한다.
즉, 공간과 시간이 일치한다.



defer 를 사용하면 함수를 호출하는 순서가, 실행순서와 분리되는 효과를 얻을 수 있다.

즉, 코드상의 위치와 실행시간이 분리된다.
즉, 위치와 시간이 분리된다.
즉, 공간과 시간이 분리된다.