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
type Args struct {
request RequestType
TaskID int
Filenames []string
}
Argsのメンバーはパッケージ外にアクセスするには名前の最初のアルファベットを大文字にしなければならないので、正しいフォーマットは
type Args struct {
Request RequestType
TaskID int
Filenames []string
}
初めて設計したときは小文字だったので、パッケージ外にアクセスできなくても転送に成功せず、結果はいつも0