所以我定义了一个作为string别名的String类型:
type String string
然后,我对它应用以下方法:
func (s String) String() string {
str := "'" + s + "'"
return string(str)
}然后,我尝试通过rpc发送一个包含String的结构,并得到以下错误:
gob: type not registered for interface: dbUtils.String我没有定义任何同名的接口,所以为什么gob认为这是一个接口?
我用类似的类型得到了相同的错误,但用gob.Register(otherType{})解决了这个问题。这不适用于String,大概是因为string不是一个接口。我是个新手,所以请解释一下发生了什么。
发布于 2013-10-10 02:19:16
它应该与String一起工作,但要确保传递的是String()对象的实例,而不是标识符字符串。所以使用gob.Register(String(""))
发布于 2013-10-10 03:00:01
我认为这可能是你想要实现的目标的解决方案:
http://play.golang.org/p/9OrSKfcCAQ
请注意,您必须显式地将变量声明为“String”。如果使用":=“赋值,赋值将假定它是一个字符串,并忽略该函数。
https://stackoverflow.com/questions/19278392
复制相似问题