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比较为thisselfw 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/

10-11 09:14