草庐IT

go - 反射值接口(interface)和指针接收器

在golang的mongodb驱动中有如下一段代码:casereflect.Struct:ifz,ok:=v.Interface().(Zeroer);ok{returnz.IsZero()}returnfalseInterfaceZeroer定义如下:typeZeroerinterface{IsZero()bool}当我用实现我的结构时func(idSomeStruct)IsZero()bool{returnid.ID==""}它有效。但是当我使用指针接收器实现IsZero方法时:func(id*SomeStruct)IsZero()bool{returnid.ID==""}类型断言

go - 反射值接口(interface)和指针接收器

在golang的mongodb驱动中有如下一段代码:casereflect.Struct:ifz,ok:=v.Interface().(Zeroer);ok{returnz.IsZero()}returnfalseInterfaceZeroer定义如下:typeZeroerinterface{IsZero()bool}当我用实现我的结构时func(idSomeStruct)IsZero()bool{returnid.ID==""}它有效。但是当我使用指针接收器实现IsZero方法时:func(id*SomeStruct)IsZero()bool{returnid.ID==""}类型断言