Googleのprotobufを使用するコードがあります。これらは、ソースファイルです:同じパッケージを認識できません。
プロトファイル:
syntax = "proto3";
package my_package.protocol;
option go_package = "protocol";
import "github.com/golang/protobuf/ptypes/empty/empty.proto";
...
service MyService {
rpc Flush (google.protobuf.Empty) returns (google.protobuf.Empty);
}
コンパイル、外出先ファイル:
package protocol
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/empty"
import (
context "golang.org/x/net/context"
grpc "google.golang.org/grpc"
)
...
type MyServiceClient interface {
Flush(ctx context.Context, in *google_protobuf.Empty, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
}
そして私は最終的にこのようなコンパイルサービスを使用してみてください:
import (
"golang.org/x/net/context"
pb "myproject/protocol"
google_protobuf "github.com/golang/protobuf/ptypes/empty"
)
...
func Flush(sink pb.MyServiceClient) {
_, err = sink.Flush(context.Background(), *google_protobuf.Empty{})
...
}
を
次のエラーが発生します:
Cannot use '*google_protobuf.Empty{}' (type "myproject/vendor/github.com/golang/protobuf/ptypes/empty".Empty) as type "myproject/vendor/github.com/golang/protobuf/ptypes/empty".*google_protobuf.Empty
これは同じものです(同じファイルに解決さえします)。私はここで何が欠けていますか?
をご利用くださいエラーと同じことがはっきりと示されます。 – Adrian