You can think of an interface variable as a hidden struct: in pseudo-C, 
something like

struct {
    void *data;
    type_info *type;
}

If you assign a map to this (even a nil map), it still has a concrete 
type.  "data" is nil, but "type" is "map[X]Y"

Therefore the interface variable itself is not nil, as it now holds type 
info.

Maybe this helps:
https://play.golang.org/p/tmLu1ECc9s-

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/5b05633a-2120-43af-91b2-ab0b3c565cbd%40googlegroups.com.

Reply via email to