Go - can someone explain why empty interfaces can hold any value, where it seems "regular" interfaces only define functions? In other words, why can the empty interface hold something other than a function definition?

new to Go and interfaces in general...

Posted in: s/programming

๐Ÿ€ gritty

2024-11-23 ยท 1 year ago

2 Comments โ†“

๐ŸŒฒ greg ยท 2024-11-23 at 19:36:

Interfaces constrain the values they contain to values whose type implements at least the methods specified in the interface.

The empty interface specifies no methods, so a value of any type satisfies it: they all implement at least no methods.

๐Ÿ€ gritty [OP] ยท 2024-11-23 at 22:05:

I guess that makes sense. I first saw this when reading about using an interface as a value in a map for json.