亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JSON-RPC 編組數據時出錯 - 我是不是傻?

使用 JSON-RPC 編組數據時出錯 - 我是不是傻?

Go
catspeake 2021-11-08 10:07:52
因此,我正在使用類似于以下的代碼,并且無法讓 RPC 在 FooHolder 中工作,它包含滿足接口的對象。我可能遺漏了一些東西,但看起來它應該可以工作 - 使用反射包它可以正確識別類型但是當函數返回時出現問題......package mainimport (    "log"    "net"    "net/rpc"    "net/rpc/jsonrpc"    "reflect")type FooInterface interface {    DoTheBartman(in *string, out *string) error    DoThis(in *[]string, out *[]string) error    NoProblems(in *int, out *int) error}type Foo struct {    wibble string}func (f *Foo) DoTheBartman(in *string, out *string) error {    log.Println("do the bartman")    *out = "^^[ " + *in + "]^^"    return nil}func (f *Foo) DoThis(in *[]string, out *[]string) error {    log.Println("Doing this")    log.Println("Type in - ", reflect.TypeOf(in))    log.Println("Type *in - ", reflect.TypeOf(*in))    log.Println("Type out - ", reflect.TypeOf(out))    log.Println("Type *out - ", reflect.TypeOf(*out))    *out = append(*in, "Hello")    return nil}type FooHolder struct {    TheFoos []FooInterface}func (fh *FooHolder) GetFoos(in *[]Foo, out *[]Foo) error {    log.Println("Getting Foos...")    log.Println("Type in - ", reflect.TypeOf(in))    log.Println("Type *in - ", reflect.TypeOf(*in))    log.Println("Type out - ", reflect.TypeOf(out))    log.Println("Type *out - ", reflect.TypeOf(*out))    return nil // This fails but with a nil... what's up with that.}
查看完整描述

1 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

這是拋出該錯誤的行:https : //github.com/golang/go/blob/master/src/net/rpc/jsonrpc/client.go#L89

它是客戶端,如果c.resp.Error != nil || c.resp.Result == nil.

現在你沒有返回任何錯誤,所以問題不在這里。

我相信問題在于您沒有設置任何結果。GetFoos使out指針為零。設置out為非零值,它應該可以工作。


查看完整回答
反對 回復 2021-11-08
  • 1 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號