Go에서 매개변수 이름 검색
다음 Go 메소드를 고려하십시오.
func (t *T) TMethod(data *testData) (interface{}, *error) { ... }
매개변수 이름(예: 데이터), 다음 코드를 사용하려고 하면 구조가 검색됩니다. name:
reflect.ValueOf(T).MethodByName("TMethod").Type.In(0).Elem().Name()
안타깝게도 Go에서는 함수 이름이나 메서드 매개변수를 얻는 것이 불가능합니다. 이는 주로 그러한 함수를 호출할 때 매개변수 이름이 중요하지 않기 때문입니다. 대신 유형과 순서에 중점을 둡니다. 게다가 아래와 같이 매개변수에 이름을 지정하지 않고 함수나 메서드를 정의하는 것이 허용됩니다.
func NamelessParams(int, string) {}
이 측면에 대한 자세한 내용은 이름 없는 인수가 중요한가요?에 대한 토론을 참조하세요. Go?
또는 지정된 이름을 가진 매개변수에 값을 전달할 수 있는 프레임워크를 구축하려는 경우(예: API 매개변수를 Go 함수/메서드에 매핑) 매개변수), 구조체나 맵 사용을 고려해 보세요. 이는 구조체와 맵이 각각 Value.FieldByName() 및 Type.FieldByName()과 같은 메서드를 통해 명명된 필드와 키의 검색을 허용하기 때문입니다.
위 내용은 Go 함수의 매개변수 이름을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!