golang rpcの穴

1142 ワード

プロジェクトシーン:


golangはMapReduceを実装し、rpcを使用してmasterとworkerの間でデータを転送しようとします.
#問題の説明:
設計された伝達パラメータタイプはこれです.
type Args struct {
     
	request   RequestType
	TaskID    int
	Filenames []string
}
しかし、データ転送のたびにrequestは常に0であり、コンパイラもエラーを報告していないことがわかり、理解できません.

原因分析:


Argsのメンバーはパッケージ外にアクセスするには名前の最初のアルファベットを大文字にしなければならないので、正しいフォーマットは
type Args struct {
     
	Request   RequestType
	TaskID    int
	Filenames []string
}

初めて設計したときは小文字だったので、パッケージ外にアクセスできなくても転送に成功せず、結果はいつも0