为何用interface{}
表示任意类型?
为何不用interface表示任意类型?
interface 定义是 interface { methods } ,methods 是类型需要实现的方法集。
如果对方法集没有任何要求,就可以匹配任何类型,methods 为空,就变成了 interface{} 。这样,任意类型的 interface{} 的定义于其它所有的 interface 是一致的。
如果另外定义 interface 表示任意类型,则需要对语法进行额外的修改。
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答937 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
interface{} 里面没有任何函数声明。
所以,所有的结构体,所有的Type,包括Primitive Type都隐式地实现这个interface {}。
这个interface{}可以作为任何结构体,Type,Primitive Type的父类(从OOP的角度来看)。
所以interface{}可以当做java的java.lang.Object,
C的void
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。