문제 원인
proto 파일을 별도의 패키지(예: "prototemps")로 이동하여 사용하려고 할 때 another 이 오류는 패키지(예: "reader")에서 proto 파일을 가져올 때 발생할 수 있습니다. 이는 proto 반사 패키지(protoreflect.ProtoMessage 인터페이스 포함)가 가져올 때 사용할 수 있는 'github.com/golang/protobuf/proto' 또는 'google.golang.org/protobuf/proto' 패키지에 있기 때문입니다. 프로토 파일 또 다른 가방이에요.
해결 방법
이 오류를 해결하려면 proto 파일을 가져올 때 올바른 패키지를 사용하고 있는지 확인해야 합니다. 두 가지 옵션이 있습니다:
"github.com/golang/protobuf/proto" 패키지 사용:
이것은 이전 버전 protoc-에서 작동합니다. gen-go 도구(보통 Go 1.11 이전). 패키지에 다음 import 문을 사용하세요. -
"google.golang.org/protobuf/proto" 패키지를 사용하세요.
<code class="go">import "github.com/golang/protobuf/proto"</code>
이 기능은 최신 버전의 protoc-gen-go 도구(일반적으로 Go 1.12 이상)에서 작동합니다. 패키지에 다음 import 문을 사용하세요. -
샘플 코드:
<code class="go">import "google.golang.org/protobuf/proto"</code>
uw0uh의 샘플 코드를 예로 들면 다음과 같습니다. "reader" 패키지에 다음 import 문을 추가하면 "missing method protoreflect" 오류가 발생합니다.
이렇게 하면 올바른 proto 리플렉션 패키지를 사용하고 proto.Unmarshal을 성공적으로 사용할 수 있습니다. () 기능.
위 내용은 제목으로 사용할 수 있는 몇 가지 영어 Q&A 질문은 다음과 같습니다.
* Go의 다른 패키지에서 proto 파일을 가져올 때 \'missing method protoreflect\' 오류가 발생하는 이유는 무엇입니까?
* \'누락된 메서드 protoref를 어떻게 수정합니까?'의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!