Go의 정적 지역 변수
C에서 지역 변수를 static 예약어를 사용하여 정적으로 만들 수 있는 것과 달리 Go에서는 지원하지 않습니다. 정적 지역 변수. 그러나 클로저를 사용하여 유사한 기능을 달성하는 대체 방법을 제공합니다.
Go의 클로저
Go의 클로저는 Go의 클로저에 정의된 변수를 참조하는 함수 리터럴입니다. 주변 기능. 이러한 변수는 주변 함수와 클로저 간에 공유되며 주변 함수가 반환된 후에도 계속 액세스할 수 있습니다.
클로저를 사용하여 정적 지역 변수 시뮬레이션
정적 지역을 시뮬레이션하려면 Go에서는 공유 변수에 액세스하는 함수와 클로저를 정의할 수 있습니다. 예:
func main() { x := 1 y := func() { fmt.Println("x:", x) x++ }
이 예에서 x는 기본 함수에 정의된 변수이고 y는 x를 참조하는 함수 리터럴입니다. x 명령문은 y가 호출될 때마다 x 값을 증가시킵니다.
클로저를 사용하면 x는 y 호출 간에 값을 유지할 수 있습니다. 이 동작은 C에서 정적 지역 변수를 사용하는 것과 유사합니다.
참고:
공유 변수가 전역 범위에 있을 필요는 없습니다. 클로저가 정의된 함수 외부의 모든 수준에서 정의할 수 있습니다.
위 내용은 Go에서 정적 지역 변수를 어떻게 시뮬레이션할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!