我需要使用包定义一个函数。Send/Receivegob
我简单地定义如下:Send()
func Send(enc *gob.Encoder, PKG interface{}) error {
err := enc.Encode(PKG)
return err
}
如下:Receive
func Receive(dec *gob.Decoder) (PKG interface{}) {
err := dec.Decode(PKG)
if err != nil {
fmt.Println(PKG)
Errors.Error(err, "Error receiving Package")
}
if PKG == nil {
fmt.Println(PKG)
Errors.Error(err, "Receiving empty Package")
}
return PKG
}
我正在将这些函数用于各种类型:结构,混凝土类型,iota...我用于在调用方法后立即检查收到的类型。Receive
但是,不幸的是,我没有到达检查断点。这些方法 () 定义错误。我在接收方端得到一个指针(),尽管所有发送的项目都被导出。Send/Receive<nil>panic: Receiving empty Package
目前,我正在尝试发送以下定义类型的类型:int
type ProcessType int
const (
COORDINATOR ProcessType = iota
SENDER
NORMALPROCESS
)
我阅读了很多文档,但无法彻底理解这个问题。能否请您提供一个简洁明了的解释。
蓝山帝景
相关分类