Go에서 패키지를 통한 동적인 반복이 불가능한 이유
최근 Go 프로그래밍 문의에서 사용자가 동적으로 순회하고 싶다고 표현했습니다. 패키지와 그 메소드. Python은 이러한 기능을 허용하지만 Go는 이 기능을 제공하지 않습니다.
이 디자인 결정은 코드에서 명시적으로 참조된 함수와 변수만 포함하는 Go의 컴파일 프로세스에서 비롯됩니다. 따라서 일부 기호가 최종 실행 파일에 없을 수 있으므로 패키지 내의 전체 기호 집합을 반복하는 것은 불가능합니다.
대체 접근 방식: 사용자 정의 유형 배열
Go에서는 직접 패키지 반복을 사용할 수 없지만, 원하는 유형의 인스턴스를 포함하는 배열을 만드는 대체 접근 방식이 있습니다. 그런 다음 이 배열을 반복하여 관련 메소드에 액세스할 수 있습니다.
예를 들어 제공된 계산 예에서 사용자 정의 배열을 구성할 수 있습니다.
var methods = [...]Calc{ &calculator.Add{}, &calculator.Sub{}, &calculator.Mul{}, &calculator.Div{}, }
이후에 메소드를 반복할 수 있습니다. :
for _, method := range methods { method.First(x) method.Second(x) }
이 방법을 사용하면 반복적인 개체 할당이 필요하지 않으며 보다 간결하고 유지 관리가 쉬운 솔루션을 제공합니다.
위 내용은 Go에서 패키지를 동적으로 반복할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!