Assume we have a struct implementing an interface:
type SomeStruct struct {}
type SomeInterface interface { SomeMethod() }
func (s *SomeStruct) SomeMethod() {}
and some instantiations:
var (
asValue := SomeStruct{}
asPointer := &asValue
asInterface SomeInterface = asPointer
)
Now, using the reflect
package, we can see that
reflect.TypeOf(asValue).Kind() == reflect.Struct
reflect.TypeOf(asPointer).Kind() == reflect.Pointer
reflect.TypeOf(asInterface).Kind() == reflect.Pointer // This!
// Why not reflect.Interface?
So, my question is: what should x
be so that we get reflect.TypeOf(x) == reflect.Interface
?
Aucun commentaire:
Enregistrer un commentaire