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

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

名稱未為接口注冊

名稱未為接口注冊

Go
精慕HU 2021-05-19 18:21:39
我正在嘗試通過RPC發送具體的實現。RPC 方法需要一個接口。相關代碼段為:包裝內node:type Commander interface {    Action() string   }type Approach struct {    Position int   }func (p Approach) Action() string {    return "Approach"   }func (t *RPCMethod) RPCAction(command Commander, reply *int) error {    // RPC Method}包裝內main:import "node"gob.Register(node.Approach{})var p = node.Approach{position}var q node.Commander = pvar reply interr = client.Call("RPCMethod.RPCAction",&q, &reply)我已經注冊了node.gob方法。但是在運行主程序時我會收到gob: name not registered for interface: "node.Approach"關于我在做什么錯的任何想法嗎?或如何注冊名稱?
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

正如我在郵件列表中回答的那樣,您將需要在解碼端注冊類型。在這種情況下,那就是RPC服務器端。gob編碼器正在使用反射來檢查結構和接口,但是解碼器端必須預先知道接口內部可能存儲什么類型,因為通過電線傳輸的唯一東西是名稱,并且它必須已經看到了該類型。第一的。


查看完整回答
反對 回復 2021-05-31
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

是的,您已經node.Approach在采空區注冊了。但是然后你通過了q,事實并非如此 node.Approach。請發送p,因為它具有您注冊的類型。


查看完整回答
反對 回復 2021-05-31
  • 2 回答
  • 0 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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