猿问

Golang gob:未为接口注册的类型:

所以我有一个定义String别名的类型string:


type String string


然后我对它应用以下方法:


func (s String) String() string {

    str := "'" + s + "'"

    return string(str)

}

然后我尝试发送一个包含Stringover rpc的结构并收到以下错误:


gob: type not registered for interface: dbUtils.String

我没有定义任何同名的接口,那么为什么gob会认为这是一个接口呢?


我遇到了类似类型的相同错误,但使用gob.Register(otherType{}). 这不适用于String,大概是因为string它不是接口。我有点新去所以请解释发生了什么。


吃鸡游戏
浏览 319回答 2
2回答

开满天机

它应该与 String 一起使用,但请确保您传递的是 String() 对象的实例,而不是标识符 String。所以用gob.Register(String(""))
随时随地看视频慕课网APP

相关分类

Go
我要回答