2012-12-15 2 views

답변

3

나는 이것이 클로저라는 사실이 유용하거나 사용되는 곳에서 가장 좋은 생각을한다고 생각한다. 예를 들어 고려 : hHandleSomething에 호출 될 때

type handler func() 

func HanldeSomething(h handler) { 
     //... 
     h() 
     // ... 
} 

func Elsewhere() { 
     var foo int 
     HandleSomething(handler(func(){ 
       fmt.Println("debug: foo in Elsewhere is", foo) 
     })) 
} 

이 방법은 Elsewhere의 컨텍스트를 사용하여 뭔가를 할/말할 수있다. 그것은 많은 상황에서 편리합니다.

+1

위 코드는 handler() 부분없이 작동한다고 생각합니다. 주조 – Marin

3

jnml은 이미 익명의 기능이 유용한 경우 중 하나를 제공했습니다.

난 당신이 단순히 다른 곳에서 호출되지 않습니다 함수 전달해야 할 때 당신이 그들을 사용할 수있는 추가 할 것입니다 :

Goroutine를 출시 :

go func() { 
    ... 
}() 

는에 몇 가지 코드를 통과 함수 :

http.Handle("/ws", websocket.Handler(func(ws *websocket.Conn) { 
    ... 
관련 문제