Go에서는 메소드 매개변수 이름에 액세스하는 것이 어려울 수 있습니다. 다른 많은 언어와 달리 Go는 함수 또는 메서드 유형 자체에 매개변수 이름을 저장하지 않습니다.
다음 방법을 고려하세요.
func (t *T) TMethod(data *testData) (interface{}, *error) { ... }
리플렉션을 사용하여 매개변수 데이터의 이름을 얻으려면, 다음을 시도할 수 있습니다.
reflect.ValueOf(T).MethodByName("TMethod").Type.In(0).Elem().Name()
그러나 이렇게 하면 데이터 유형 이름인 testData가 반환됩니다. 이러한 동작의 이유는 Go 함수의 고유한 특성 때문입니다.
매개변수 이름이 저장되지 않는 이유
Go에서는 함수 유형이 입력만을 나타냅니다. 및 출력 유형. 매개변수 이름은 함수가 호출되거나 실행되는 방식과 관련이 없으므로 중요하지 않은 정보로 간주됩니다. 이는 언어의 유형 시스템을 단순화합니다.
다음 사항을 고려하십시오.
가능한 대안
매개변수 이름은 리플렉션을 통해 검색할 수 없으므로 다음 대안을 고려하십시오.
Go는 자세한 매개변수 정보보다 유형 안전성과 단순성을 우선시한다는 점을 기억하세요.
위 내용은 Go에서 메소드 매개변수 이름을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!