|
|
|
|
|
by wyager
4424 days ago
|
|
>Go does not have a type hierarchy, so there is no top type. Go does have a type heirarchy. It's just not very extensible. There is top (interface{}) and then there are all other types (which are subtypes of interface{}). If Go didn't have a type heirarchy, you wouldn't be able to up- and down-cast (up-casts are performed via implicit coercion to interface{} and down-casts are explicit). >You can easily use interface{} to make generic data structures, but interfaces have a time/space/code-complexity cost which makes them not worth it most of the time. You also lose any semblance of type safety, which is kind of awful. |
|
As for losing type safety when writing generic containers, this is true, and another reason why people don't do this.