클로저는 반환 값이 반환된 후의 변수를 포함하여 중첩 함수 범위에 있는 변수에 액세스할 수 있는 중첩 함수에 정의된 함수입니다. 이는 피보나치 수열의 항 생성과 같은 유연하고 재사용 가능한 코드를 만드는 데 사용됩니다. 피보나치 항을 생성하는 클로저 함수를 정의합니다. 클로저 함수는 피보나치 수열의 처음 두 항을 저장하기 위해 두 변수를 캡처합니다. 새로운 피보나치 항을 차례로 계산하고 반환하려면 클로저 함수를 호출하세요. 클로저 함수는 시간이 지남에 따라 캡처된 변수의 값을 변경하여 피보나치 수열의 후속 항을 생성할 수 있습니다.
Go 언어 함수의 클로저
클로저란 무엇인가요?
클로저는 중첩 함수 내부에 정의된 함수입니다. 중첩 함수가 반환된 경우에도 중첩 함수 범위의 변수에 액세스할 수 있습니다.
코드 예:
func outer(multiplier int) func(x int) int { return func(x int) int { return multiplier * x } } func main() { doubler := outer(2) result := doubler(5) fmt.Println(result) // 输出:10 }
위 예에서는 outer
返回了一个嵌套函数 func(x int) int
。嵌套函数可以访问 outer
函数中的变量 multiplier
,即使 outer
함수가 반환되었습니다.
실용 예:
클로저는 유연하고 재사용 가능한 코드를 만드는 데 사용할 수 있습니다. 예를 들어, 피보나치 수열의 항을 생성하기 위해 클로저를 작성할 수 있습니다:
func fibonacci() func() int { a, b := 0, 1 return func() int { a, b = b, a+b return a } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) // 打印斐波那契序列的前 10 项 } }
기타 사항:
위 내용은 golang 기능 폐쇄의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!