func (req *AppendEntriesRequest) Encode(w io.Writer) (int, error) {
pb := &protobuf.AppendEntriesRequest{
Term: proto.Uint64(req.Term),
PrevLogIndex: proto.Uint64(req.PrevLogIndex),
PrevLogTerm: proto.Uint64(req.PrevLogTerm),
CommitIndex: proto.Uint64(req.CommitIndex),
LeaderName: proto.String(req.LeaderName),
Entries: req.Entries,
}
p, err := proto.Marshal(pb)
if err != nil {
return -1, err
}
return w.Write(p)
}
对于此功能,是否输入“w”?那req呢? Kinda在这里感到困惑。
谢谢
最佳答案
那是一个围棋方法AppendEntriesRequest
是一种类型,而req *AppendEntriesRequest
是指向该类型的指针。
您可以将其他语言的req
比较为this
或self
w io.Writer
是函数的输入。(int, error)
是返回值。
您可以通过实例化AppendEntriesRequest
结构来调用此方法:
r := &AppendEntriesRequest{}
n, err := r.Encode(...)
关于go - 输入函数,函数(req * AppendEntriesRequest)编码(w io.Writer)(int,error){,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25496845/