Go 함수 클로저를 사용하여 변수를 캡처하는 방법은 무엇입니까? 캡처할 변수가 포함된 함수 매개변수를 정의합니다. 함수 본문 내에서 캡처된 변수를 사용합니다. 예: 카운터 클로저 캐시 클로저 클로저는 Go에서 변수를 캡처하고 유연하고 재사용 가능한 코드를 만드는 데 사용됩니다.
Go 함수 클로저를 사용하여 변수를 캡처하는 방법
클로저는 함수 정의 외부에 정의되었지만 함수 내에서 액세스할 수 있는 자유 변수를 포함하는 함수입니다. Go에서는 다음 단계에 따라 클로저를 생성할 수 있습니다.
예제 코드:
package main import "fmt" func main() { x := 10 f := func() { // x 是一个自由变量,可以在 f 内访问 fmt.Println(x) } // 运行闭包 f() }
위 예에서는 f
函数是一个闭包,它捕获了变量 x
。当 f
被调用时,它打印 x
的值,即 10
.
기타 예:
카운터 클로저: 클로저 함수가 반환된 후에도 계속 계산되는 루프 카운터를 만듭니다.
func counter(start int) func() int { x := start return func() int { x++ return x } }
캐시 폐쇄: 성능 향상을 위해 결과가 캐시되는 함수를 만듭니다.
func cachingCalc(expensiveComputation func(int) int) func(int) int { cache := make(map[int]int) return func(x int) int { if v, ok := cache[x]; ok { return v } v = expensiveComputation(x) cache[x] = v return v } }
클로저는 변수를 캡처하고 유연하고 재사용 가능한 코드를 생성하기 위한 Go의 강력한 도구입니다.
위 내용은 golang 함수 클로저를 사용하여 변수를 캡처하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!