>백엔드 개발 >Golang >리플렉션을 통해 유형을 전달하여 Go에서 일반 함수를 호출하는 방법

리플렉션을 통해 유형을 전달하여 Go에서 일반 함수를 호출하는 방법

王林
王林앞으로
2024-02-05 22:21:031256검색

如何通过反射传递 Type 来调用 Go 中的泛型函数

질문 내용

동일한 API에 대해 다양한 JSON 응답을 수신하는 Go 애플리케이션이 있으므로 올바른 응답을 찾을 때까지 가능한 모든 JSON 응답을 처리하려고 시도하는 사용자 정의 언마샬러를 작성해 보았습니다.

이를 위해 JSON을 비정렬화하는 일반 함수를 만들었고 리플렉션에서 얻은 유형을 사용하여 이를 호출하려고 합니다.

예:

으아아아

하지만 Go 컴파일러에서 다음과 같은 오류가 발생했습니다. fieldType (reflect.StructField 类型的变量) 不是类型编译器 (NotAType).

반사 매개변수를 일반 함수에 전달하는 방법이 있나요?


정답


이 질문은 Go의 일반적인 기능 범위를 벗어납니다.

reflect.New를 사용하여 해당 값의 Reflect.Type에 따라 값을 생성합니다. p>

Go에는 상속이 없습니다. 질문의 Unmarshal 메서드는 필드가 없는 유형에서 작동합니다. "처리기"를 일반 함수에 전달하여 수정되었습니다.

으아아아

다음과 같이 Marshal 기능을 사용하세요:

으아아아

https://www.php.cn/link/c76e4b2fa54f8506719a5c0dc14c2eb9

위 내용은 리플렉션을 통해 유형을 전달하여 Go에서 일반 함수를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제